Display resolution for toradex reference multimedia image on colibri imx6ull

Hi,
I am trying to set the resolution of 7inch capacitive touch display for reference multimedia image to 800x480. If I use
fw_setenv fw_setenv vidargs video=mxcfb0:dcd,800x480M@60
it shows up in fw_printenv but has no effect. Here is the fw_printenv output -


arch=arm
baudrate=115200
board=colibri-imx6ull
board_name=colibri-imx6ull
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/bootarm.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=mmc0 usb0 dhcp
bootcmd=run ubiboot || 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}; 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 -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_usb0=devnum=0; run usb_boot
bootdelay=1
bootm_size=0x10000000
console=ttymxc0
cpu=armv7
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
fdt_addr_r=0x88200000
fdt_board=eval-v3
ipaddr=192.168.10.2
kernel_addr_r=0x84200000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x84200000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
mtdids=nand0=gpmi-nand
mtdparts=mtdparts=gpmi-nand:512k(mx6ull-bcb),1536k(u-boot1)ro,1536k(u-boot2)ro,512k(u-boot-env),-(ubi)
netmask=255.255.255.0
preboot=test -n ${fdtfile} || setenv fdtfile imx6ull-colibri${variant}-${fdt_board}.dtb
pxefile_addr_r=0x88300000
ramdisk_addr_r=0x88400000
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}; 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;run boot_efi_bootmgr;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 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=0x88280000
serverip=192.168.10.1
setethupdate=if env exists ethaddr; then; else setenv ethaddr 00:14:2d:00:00:00; fi; tftpboot ${loadaddr} ${board}/flash_eth.img && source ${loadaddr}
setsdupdate=mmc rescan && setenv interface mmc && fatload ${interface} 0:1 ${loadaddr} ${board}/flash_blk.img && source ${loadaddr}
setup=setenv setupargs console=tty1 console=${console},${baudrate}n8 ${memargs} ${mtdparts}
setupdate=run setsdupdate || run setusbupdate || run setethupdate
setusbupdate=usb start && setenv interface usb && fatload ${interface} 0:1 ${loadaddr} ${board}/flash_blk.img && source ${loadaddr}
soc=mx6
splashimage=0x84200000
splashpos=m,m
ubiargs=ubi.mtd=ubi root=ubi0:rootfs rw rootfstype=ubifs ubi.fm_autoconvert=1
ubiboot=run setup; setenv bootargs ${ubiargs} ${setupargs} ${tdxargs}; echo Booting from NAND…; ubi part ubi &&ubi read ${kernel_addr_r} kernel && ubi read ${fdt_addr_r} dtb && bootz ${kernel_addr_r} - ${fdt_addr_r}
ubifs_boot=if ubi part ${bootubipart} ${bootubioff} && ubifsmount ubi0:${bootubivol}; then devtype=ubi; devnum=ubi0; bootfstype=ubifs; distro_bootpart=${bootubivol}; run scan_dev_for_boot; ubifsumount; fi
update_uboot=nand erase.part u-boot1 && nand write ${loadaddr} u-boot1 ${filesize} && nand erase.part u-boot2 && nand write ${loadaddr} u-boot2 ${filesize}
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=toradex
vidargs=video=mxcfb0:dcd,800x480M@60
videomode=video=ctfb:x:640,y:480,depth:18,pclk:39722,le:48,ri:16,up:33,lo:10,hs:96,vs:2,sync:0,vmode:0


Looks like videomode setup has the final effect of display resolution. How do I change this to get 800x480 resolution?
Thanks and Regards,
Mansij

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello Mansij,

Thank you for reaching out with your question about setting the display resolution on your Colibri iMX6ULL module. It seems like the ‘videomode’ setting is indeed overriding the ‘vidargs’ you tried to use. To achieve the desired resolution of 800x480, you can follow these steps:

  1. Access the U-Boot Environment: Interrupt the boot process to enter the U-Boot console. This is where you can modify the environment variables.

  2. Set the Correct Video Mode: Enter the following command to adjust the ‘videomode’ to your desired resolution:

    setenv videomode 'video=ctfb:x:800,y:480,depth:18,pclk:33260,le:40,ri:40,up:29,lo:13,hs:48,vs:3,sync:0,vmode:0'
    

    This command sets the resolution to 800x480 with appropriate timings. You may need to adjust the pixel clock (pclk) and other timing parameters to match your display’s specifications.

  3. Save the Environment: After setting the ‘videomode’, save your changes with:

    saveenv
    
  4. Reboot the System: Finally, restart your device to apply the changes:

    reset
    

By setting the ‘videomode’ directly, you should be able to achieve the desired resolution. If you encounter any further issues, ensure that your display supports the specified timings and that there are no conflicts with other display settings.

I hope this helps! If you have any more questions, feel free to ask.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

Problem with uboot Display Configuration.

Hi,
I tried the setenv command at u-boot. It changed the videomode -


root@colibri-imx6ull-14884042:~# fw_printenv videomode
videomode=video=ctfb:x:800,y:480,depth:18,pclk:39722,le:48,ri:16,up:33,lo:10,hs:96,vs:2,sync:0,vmode:0


But this did not have any effect on the display. The display still has a blank vertical portion with vertical lines. I checked the frame buffer using fbset and that gave me -


root@colibri-imx6ull-14884042:~# fbset

mode “640x480-0”
# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
geometry 640 480 640 480 32
timings 0 0 0 0 0 0 0
accel false
rgba 8/16,8/8,8/0,0/0
endmode


I tried to use fbset -g but it gives invalid argument.


root@colibri-imx6ull-14884042:~# fbset -g 800 480 800 480 18
fbset: FBIOPUT_VSCREENINFO: Invalid argument


Questions -

  1. If I have to modify the device tree to get the display working properly, which is the file to be modified - imx6ull-colibri.dtsi or mx6ull-colibri-eval-v3.dtsi? I am using Toradex Colibri imx6ull module.
  2. Where do I find the timing details for the device tree for the 7 inch Parallel Capacitive Touch Display 800x480 V1.0?

Thanks,
Mansij

Any help will be great…

Hi @mansijc

Check the chart to see the relationship between each include.


Check the Capacitive Touch Display 7" Parallel tab.