UART_A on Iris stops after Login prompt


I am running into a problem where everything works fine but as soon as the login prompt shows it seems like UART_A stops TRANSMITTING! I say transmitting because it looks like it is still receiving. I say this because i went with SSH to the board and did: “echo 1 > /dev/ttymxc0” and it will print it on my PuTTy session where I am connected to the UART_A with a RS232 module.

I have a custom image installed on my Iris Carrier Board. But since the complete boot proces is printed I was under the impression this wasn’t an issue. A quick side-note is that I am also unable to get into u-boot. I cant give any boot from moment 0. As soon as the booting proces starts i am unable to give any input. I have also tried connecting a keyboard to it with no result.

I also ran in to this problem with the ‘normal’ image installed i got from the Toradex website. The “tezi”? image.

After some looking around i found the following, these look to be my device-tree settings. It looks like uart is disabled to me.

&uart1 { /* Console */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
        status = "disabled";

&uart2 { /* Bluetooth */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2 &pinctrl_bt>;
        status = "okay";

        bluetooth {
                compatible = "ti,wl1835-st";
                enable-gpios = <&gpio6 18 GPIO_ACTIVE_HIGH>;

&uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
        status = "disabled";

Does this mean that UART_A is disabled? I also couldn’t quite understand what pinctrl_uart1 exactly is? If this is the case. How am I able to adjust everything since I am unable to get into u-boot.

Thanks in advance.

Greetings @senkoo!

Can you please specify the BSP version you’re using?

On which device tree file did you find these uart settings? IIRC, the uart nodes are disabled in the SoC device tree but then they are enabled in the specific carrier board device tree.

I see you made some changes to the device tree, namely including the bluetooth setting.

Can you confirm the same issue occurs with our reference image with no changes at all? Also, can you confirm the settings on your serial terminal? These should be baud rate 115200, 8N1, no software flow control and no hardware flow control.

Also, can you please provide the output of fw_printenv on Linux? This should print your U-Boot environment variables which would be relevant here too.

BSP Version = 3.0b4.

And yes I saw that in a seperate file the uart1 { status=okay } was added. I wasn’t sure this was enough.

Also i have 115200N1 and NONE and NONE set.

I just downloaded an image with help of the Toradex Easy Installer, actually i tried 3 different ones. With all of them i have the same issue. I am trying to look for a new RS232 cable but I dont have 1 available this fast.

mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
boot_net_usb_start=usb start
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boo                                                                                                                                                             t_part; fi
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};el                                                                                                                                                             se bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootp                                                                                                                                                             art} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then boot                                                                                                                                                             efi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladd                                                                                                                                                             r};fi
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix                                                                                                                                                             }${efi_fdtfile}
efi_dtb_prefixes=/ /dtb/ /dtb/current/
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "$                                                                                                                                                             {soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix i                                                                                                                                                             n ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${p                                                                                                                                                             refix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${dev                                                                                                                                                             num}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable medi                                                                                                                                                             a binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: contin                                                                                                                                                             uing...; fi; setenv efi_fdtfile
boot_prefixes=/ /boot/
boot_scripts=boot.scr.uimg boot.scr
boot_targets=mmc1 usb0 dhcp
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr}                                                                                                                                                              ${prefix}${boot_syslinux_conf}
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefi                                                                                                                                                             x}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boo                                                                                                                                                             t_extlinux; echo SCRIPT FAILED: continuing...; fi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefi                                                                                                                                                             x}${script}; source ${scriptaddr}
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${d                                                                                                                                                             evnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${pr                                                                                                                                                             efix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
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_scrip                                                                                                                                                             ts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env ex                                                                                                                                                             ists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fs                                                                                                                                                             type ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_b                                                                                                                                                             oot; fi; done; setenv devplist
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_usb0=devnum=0; run usb_boot
bootcmd_dhcp=if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr                                                                                                                                                             }; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; the                                                                                                                                                             n setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bo                                                                                                                                                             otp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010                                                                                                                                                             :UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt                                                                                                                                                             _addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_add                                                                                                                                                             r_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;s                                                                                                                                                             etenv efi_old_arch;setenv efi_old_vci;
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
bootcmd=run emmcboot ; echo ; echo emmcboot failed ; setenv fdtfile ${fdt_file};                                                                                                                                                              run distro_bootcmd ; usb start ; setenv stdout serial,vga ; setenv stdin serial                                                                                                                                                             ,usbkbd
defargs=enable_wait_mode=off galcore.contiguousSize=50331648
dfu_alt_info=u-boot.imx raw 0x2 0x3ff mmcpart 0;boot part 0 1;rootfs part 0 2;zI                                                                                                                                                             mage fat 0 1;imx6dl-colibri-eval-v3.dtb fat 0 1;imx6dl-colibri-cam-eval-v3.dtb f                                                                                                                                                             at 0 1
set_emmcargs=setenv emmcargs ip=off root=PARTUUID=${uuid} rw,noatime rootfstype=                                                                                                                                                             ext4 rootwait
emmcboot=run setup; run emmcfinduuid; run set_emmcargs; setenv bootargs ${defarg                                                                                                                                                             s} ${emmcargs} ${setupargs} ${vidargs}; echo Booting from internal eMMC chip...;                                                                                                                                                              run emmcdtbload; load mmc ${emmcdev}:${emmcbootpart} ${kernel_addr_r} ${boot_fi                                                                                                                                                             le} && run fdt_fixup && bootz ${kernel_addr_r} ${dtbparam}
emmcdtbload=setenv dtbparam; load mmc ${emmcdev}:${emmcbootpart} ${fdt_addr_r} $                                                                                                                                                             {fdt_file} && setenv dtbparam " - ${fdt_addr_r}" && true
emmcfinduuid=part uuid mmc ${mmcdev}:${emmcrootpart} uuid
nfsargs=ip=:::::eth0:on root=/dev/nfs rw
nfsboot=run setup; setenv bootargs ${defargs} ${nfsargs} ${setupargs} ${vidargs}                                                                                                                                                             ; echo Booting via DHCP/TFTP/NFS...; run nfsdtbload; dhcp ${kernel_addr_r} && ru                                                                                                                                                             n fdt_fixup && bootz ${kernel_addr_r} ${dtbparam}
nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} ${fdt_file} && setenv dtbparam "                                                                                                                                                              - ${fdt_addr_r}" && true
set_sdargs=setenv sdargs ip=off root=PARTUUID=${uuid} rw,noatime rootfstype=ext4                                                                                                                                                              rootwait
sdboot=run setup; run sdfinduuid; run set_sdargs; setenv bootargs ${defargs} ${s                                                                                                                                                             dargs} ${setupargs} ${vidargs}; echo Booting from SD card; run sddtbload; load m                                                                                                                                                             mc ${sddev}:${sdbootpart} ${kernel_addr_r} ${boot_file} && run fdt_fixup && boot                                                                                                                                                             z ${kernel_addr_r} ${dtbparam}
sddtbload=setenv dtbparam; load mmc ${sddev}:${sdbootpart} ${fdt_addr_r} ${fdt_f                                                                                                                                                             ile} && setenv dtbparam " - ${fdt_addr_r}" && true
sdfinduuid=part uuid mmc ${sddev}:${sdrootpart} uuid
set_usbargs=setenv usbargs ip=off root=PARTUUID=${uuid} rw,noatime rootfstype=ex                                                                                                                                                             t4 rootwait
usbboot=run setup; usb start; run usbfinduuid; run set_usbargs; setenv bootargs                                                                                                                                                              ${defargs} ${setupargs} ${usbargs} ${vidargs}; echo Booting from USB stick...; r                                                                                                                                                             un usbdtbload; load usb ${usbdev}:${usbbootpart} ${kernel_addr_r} ${boot_file} &                                                                                                                                                             & run fdt_fixup && bootz ${kernel_addr_r} ${dtbparam}
usbdtbload=setenv dtbparam; load usb ${usbdev}:${usbbootpart} ${fdt_addr_r} ${fd                                                                                                                                                             t_file} && setenv dtbparam " - ${fdt_addr_r}" && true
usbfinduuid=part uuid usb ${usbdev}:${usbrootpart} uuid
setethupdate=if env exists ethaddr; then; else setenv ethaddr 00:14:2d:00:00:00;                                                                                                                                                              fi; tftpboot ${loadaddr} flash_eth.img && source ${loadaddr}
setsdupdate=setenv interface mmc; setenv drive 1; mmc rescan; load ${interface}                                                                                                                                                              ${drive}:1 ${loadaddr} flash_blk.img && source ${loadaddr}
setup=setenv setupargs fec_mac=${ethaddr} consoleblank=0 no_console_suspend=1 co                                                                                                                                                             nsole=tty1 console=${console},${baudrate}n8
setupdate=run setsdupdate || run setusbupdate || run setethupdate
setusbupdate=usb start && setenv interface usb; setenv drive 0; load ${interface                                                                                                                                                             } ${drive}:1 ${loadaddr} flash_blk.img && source ${loadaddr}
vidargs=video=mxcfb0:dev=lcd,640x480M@60,if=RGB666 video=mxcfb1:off fbmem=8M

It was due to a RS232 cable being inverted.

Thanks for letting us know.