Radxa Zero UART A0 not working

  • DietPi version
    G_DIETPI_VERSION_CORE=9
    G_DIETPI_VERSION_SUB=18
    G_DIETPI_VERSION_RC=1
    G_GITBRANCH=‘master’
    G_GITOWNER=‘MichaIng’
    G_LIVE_PATCH_STATUS[0]=‘applied’
  • Distro version
    Trixie
  • Kernel version
    Linux Voron0 6.12.52-current-meson64 #1 SMP PREEMPT Sun Oct 12 10:57:19 UTC 2025 aarch64 GNU/Linux
  • Architecture
    arm64
  • SBC model
    Radxa Zero (aarch64)
  • Power supply used
    Internal Printer power supply unit
  • SD card used
    eMMC

I use this SBC in a custom-built Voron printer, to control the printer Atmega2560 MCU board via UART A0 on pin0 and pin1. This has been working correctly since the first installation of the board with the Radxa image and kernel.

The original image/release (Buster) however is out of support so I decided to upgrade the Debian release on the board.

This worked, but rendered my serial port unusable, no repsonse to or from the MCU board anymore, so I decided to do a clean install using dietPi Trixie. Everything went smooth, however, I still don’t get any byte transferred over the serial connection to the MCU board. Nothing changed on the hardware side, so I’m sure the serial lines are correctly wired up.

I’m not that well informed about all the intricacies of overlays on arm64, but I’m starting to understand what’s happening.

So I enabled the UART on A0 using these line in dietpiEnv.txt:

overlay_path=amlogic 
overlay_prefix=meson 
overlays=g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1 
user_overlays=

The overlay exists and the name is correct, as far as I understand overlay_path, overlay_prefix and overlays:

/$ ls -sla /boot/dtb/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dtbo
4 -rw-r–r-- 1 root root 396 Oct 12 14:50 /boot/dtb/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dtbo

The output of dmesg is (and has always been, even before editing dietPiEnv.txt)

soc soc0: Amlogic Meson G12A (S905Y2) Revision 28:b (30:2) DetectedSerial: 8250/16550 driver, 8 ports, IRQ sharing disabled
Serial: AMBA driver
ff803000.serial: ttyAML0 at MMIO 0xff803000 (irq = 14, base_baud = 1500000) is a meson_uart
ffd24000.serial: ttyAML2 at MMIO 0xffd24000 (irq = 15, base_baud = 1500000) is a meson_uart
serial serial0: tty port ttyAML2 registered

Since the kernel has always reported ttyAML0 I suspect this is just blindly recognising the UART on 0xff803000 but without it being connected to pin0 and pin1?

But I still don’t understand how this doesn’t work when I activate the uart_ao on pin0 and pin1 overlay?

These are the installed relevant packages:

linux-base                      4.12
linux-dtb-current-meson64       25.11.0-trunk-dietpi2
linux-image-current-meson64     25.11.0-trunk-dietpi2
linux-u-boot-radxa-zero-current 25.11.0-trunk-dietpi1

Can somebody please help me get the UART AO enabled on pin0 and pin1 again?