You are right, we will buy 2 new boards and perform some more test. Anyway it seems to me strange that all 4 signals of UART1 and UART2 have the issue while UART 1 not.
Here below, for further investigation, you can find the complete system information and the steps we performed.
Software summary
Bootloader: U-Boot
Kernel version: 6.6.108-7.4.0 #1 SMP PREEMPT Thu Sep 25 09:00:10 UTC 2025
Kernel command line: root=PARTUUID=0cb37ad0-02 ro rootwait console=tty1 console=ttymxc0,115200
Distro name: NAME=“TDX Wayland with XWayland Upstream”
Distro version: VERSION_ID=7.4.0-build.10
Distro variant: -
Hostname: verdin-imx8mm-08606292
Hardware info
HW model: Toradex Verdin iMX8M Mini on Ivy
Toradex version: 0059 V1.1D
Serial number: 08606292
Processor arch: aarch64
From the Toradex Easy Installer, we installed the latest “Upstream image version” proposed online by the Toradex server. Then we changed the fdtfile and the fdt_board variable in U-Boot. This is the current output of printenv:
fdt_board=ivy
fdtfile=imx8mm-verdin-nonwifi-ivy.dtb
(complete printenv attached below, as captured)
We checked the device tree and everything looks correct, however the UART1 and UART2 signals still measure ~1.1 V instead of the expected 1.8 V logic level.
Could you please suggest what else we should verify or try to solve this issue?
In particular, are there known settings (IOMUX/pinctrl, pad control, voltage domain, PMIC/regulator, or board-level configuration) that could force UART pins to operate at a lower I/O voltage, even if the DTB appears correct?
Thank you in advance.
Best regards,
arch=arm
baudrate=115200
board=verdin-imx8mm
board_name=verdin-imx8mm
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_efi_bootmgr=if fdt addr -q ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc1 mmc0 dhcp
bootcmd=run distro_bootcmd
bootcmd_dhcp=devtype=dhcp; run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcount=1
bootdelay=1
console=ttymxc0
cpu=armv8
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
ethact=ethernet@30be0000
ethaddr=00:14:2d:83:52:54
ethprime=eth0
fdt_addr_r=0x50200000
fdt_board=ivy
fdtcontroladdr=bdefa7b0
fdtfile=imx8mm-verdin-nonwifi-ivy.dtb
initrd_addr=0x43800000
initrd_high=0xffffffffffffffff
kernel_addr_r=0x48200000
kernel_comp_addr_r=0x40200000
kernel_comp_size=0x08000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x48200000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
preboot=test -n ${fdtfile} || setenv fdtfile imx8mm-verdin-${variant}-${fdt_board}.dtb
ramdisk_addr_r=0x50300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}…; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then part uuid ${devtype} ${devnum}:${distro_bootpart} distro_bootpart_uuid ; run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing…; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo EXTLINUX FAILED: continuing…; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing…; fi; done
scriptaddr=0x50280000
serial#=08606292
soc=imx8m
stderr=serial@30860000
stdin=serial@30860000
stdout=serial@30860000
update_uboot=askenv confirm Did you load flash.bin (y/N)?; if test “$confirm” = “y”; then setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200; mmc dev 0 1; mmc write ${loadaddr} 0x2 ${blkcnt}; fi
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
usb_ignorelist=0x1050:*,
variant=nonwifi
vendor=toradex
ver=U-Boot 2024.07-7.4.0+git.3f772959501c (Jul 01 2024 - 18:07:18 +0000)