Apalis imx6 multimedia reference image 7" display output broken

Hello,

i’m currently trying out the toradex reference multimedia image in version 5 on my apalis imx6 module together with the 7" parallel capactive touch display.

The image compiled perfectly and after enabling the overlay as defined here i get output on the display, but it seems broken (maybe color depth or resolution?):


These were the overlay changes i did in my local.conf:

TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT_remove = "apalis-imx6_hdmi_overlay.dtbo"
TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT_append = " apalis-imx6_lcd-lt161010_overlay.dtbo apalis-imx6_atmel-mxt_overlay.dtbo"

Here some details of my build:

Linux apalis-imx6-10645458 5.4.154-5.5.0-devel+git.9f04e0d3d560 #1 SMP Fri Nov 26 15:33:03 UTC 2021 armv7l armv7l armv7l GNU/Linux
root@apalis-imx6-10645458:~# cat /proc/cmdline
enable_wait_mode=off vmalloc=400M root=PARTUUID=ff20310a-02 ro rootwait fec_mac=00:14:2d:a2:6f:d2 consoleblank=0 no_console_suspend=1 console=tty1 console=ttymxc0,115200n8 mxc_hdmi.only_cea=1 fbmem=32M
root@apalis-imx6-10645458:~# fw_printenv
 setupdate=run setsdupdate || run setusbupdate || run setethupdate
arch=arm
baudrate=115200
board=apalis_imx6
board_name=apalis_imx6
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_file=zImage
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr
boot_scripts=boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc1 mmc2 mmc0 usb0 dhcp
bootcmd=run distro_bootcmd ; usb start ; setenv stdout serial,vidconsole; setenv stdin serial,usbkbd
bootcmd_dhcp=setenv devtype dhcp; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_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_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
bootcmd_mmc2=devnum=2; run mmc_boot
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=1
bootm_size=0x20000000
console=ttymxc0
cpu=armv7
defargs=enable_wait_mode=off vmalloc=400M
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
fdt_addr_r=0x12100000
fdt_file=imx6q-apalis-eval.dtb
fdt_fixup=;
fdtfile=imx6q-apalis-eval.dtb
ipaddr=192.168.10.2
kernel_addr_r=0x11000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x12000000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
netmask=255.255.255.0
pxefile_addr_r=0x17100000
ramdisk_addr_r=0x12200000
rootpath=/srv/nfs
sata_boot=if sata dev ${devnum}; then devtype=sata; run scan_dev_for_boot_part; fi
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 run scan_dev_for_boot; fi; done; setenv devplist
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 in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.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 SCRIPT 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=0x17000000
serverip=192.168.10.1
set_blkcnt=setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200
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 || setenv drive 2; mmc rescan; load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && source ${loadaddr}
setup=setenv setupargs fec_mac=${ethaddr} consoleblank=0 no_console_suspend=1 console=tty1 console=${console},${baudrate}n8
setusbupdate=usb start && setenv interface usb; setenv drive 0; load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && source ${loadaddr}
soc=mx6
splashimage=0x12000000
splashpos=m,m
uboot_blk=8a
uboot_hwpart=1
uboot_spl_blk=2
update_spl=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && mmc write ${loadaddr} ${uboot_spl_blk} ${blkcnt}
update_uboot=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && mmc write ${loadaddr} ${uboot_blk} ${blkcnt}
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=toradex
vidargs=mxc_hdmi.only_cea=1 fbmem=32M

I’m not quite sure where to go from here. I appreciate any help on this, thank you.

Kevin

Found the solution: The output is on the mcxfb device 2, so it helped setting the right mode:

fw_setenv vidargs 'video=mxcfb0:off video=mxcfb1:off video=mxcfb2:dev=lcd,FusionF07A,if=RGB24 video=mxcfb3:off fbmem=32M'