Missing video output on Apalis T30 on Linux

Hello support,

I’m currently starting the test of your 2 GB Apalis T30 board (v. 1.0E) on the Apalis evaluation board (v. 1.1A). It used to run WinCE 7, and it regularly works.

The OS image version I’m using is the Apalis_T30_LinuxImageV2.6_20160826.tar.bz2 from your wen site.
The board regularly boots Linux, as I can see through the serial interface.

The only problem so far is about the fact that I get no video output whatsoever, neither from the VGA nor the DVI port.

More specifically, this is the output of the printenv command, at U-boot level:

Apalis T30 # printenv
arch=arm
baudrate=115200
board=apalis_t30
board_name=apalis_t30
boot_a_script=load ${devtype} ${devnum}:${bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_extlinux=sysboot ${devtype} ${devnum}:${bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_file=uImage
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_targets=mmc1 mmc0 usb0 pxe dhcp
bootcmd=run emmcboot; echo; echo emmcboot failed; run sdboot; echo; echo sdboot failed; run usbboot; echo; echo usbboot failed; run nfsboot; echo; echo nfsboot failed
bootcmd_dhcp=usb start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_mmc1=setenv devnum 1; run mmc_boot
bootcmd_pxe=usb start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=setenv devnum 0; run usb_boot
bootdelay=1
console=ttyS0
cpu=armv7
defargs=core_edp_mv=1300 usb_high_speed=1
dfu_alt_info=apalis_t30.img raw 0x0 0x500 mmcpart 1; boot part 0 1 mmcpart 0; rootfs part 0 2 mmcpart 0; uImage fat 0 1 mmcpart 0; tegra30-apalis-eval.dtb fat 0 1 mmcpart 0
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext3 rootwait
emmcboot=run setup; setenv bootargs ${defargs} ${emmcargs} ${setupargs} ${vidargs}; echo Booting from internal eMMC chip...; run emmcdtbload; load mmc 0:1 ${kernel_addr_r} ${boot_file} && bootm ${kernel_addr_r} - ${dtbparam}
emmcdtbload=setenv dtbparam; load mmc 0:1 ${fdt_addr_r} ${soc}-apalis-${fdt_board}.dtb && setenv dtbparam ${fdt_addr_r}
ethact=e1000#0
ethaddr=00:14:2d:28:72:1b
fdt_addr_r=0x82000000
fdt_board=eval
fdt_high=ffffffff
initrd_high=ffffffff
ipaddr=192.168.10.2
kernel_addr_r=0x81000000
loadaddr=0x80408000
memargs=vmalloc=256M mem=2035M@2048M fbmem=12M@4083M
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
netmask=255.255.255.0
nfsargs=ip=:::::eth0:on root=/dev/nfs rw netdevwait
nfsboot=run setup; setenv bootargs ${defargs} ${nfsargs} ${setupargs} ${vidargs}; echo Booting via DHCP/TFTP/NFS...; run nfsdtbload; dhcp ${kernel_addr_r} && bootm ${kernel_addr_r} - ${dtbparam}
nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} ${soc}-apalis-${fdt_board}.dtb && setenv dtbparam ${fdt_addr_r}
pxefile_addr_r=0x90100000
ramdisk_addr_r=0x82100000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${bootpart} bootfstype; then run scan_dev_for_boot; fi; done
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x90000000
sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext3 rootwait
sdboot=run setup; setenv bootargs ${defargs} ${sdargs} ${setupargs} ${vidargs}; echo Booting from SD card in 8bit slot...; run sddtbload; load mmc 1:1 ${kernel_addr_r} ${boot_file} && bootm ${kernel_addr_r} - ${dtbparam}
sddtbload=setenv dtbparam; load mmc 1:1 ${fdt_addr_r} ${soc}-apalis-${fdt_board}.dtb && setenv dtbparam ${fdt_addr_r}
serial#=02650651
serverip=192.168.10.1
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 igb_mac=${ethaddr} consoleblank=0 no_console_suspend=1 console=tty1 console=${console},${baudrate}n8 debug_uartport=lsport,0 ${memargs}
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}
soc=tegra30
stderr=serial,lcd
stdin=serial
stdout=serial,lcd
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
usbargs=ip=off root=/dev/sda2 rw,noatime rootfstype=ext3 rootwait
usbboot=run setup; setenv bootargs ${defargs} ${setupargs} ${usbargs} ${vidargs}; echo Booting from USB stick...; usb start && run usbdtbload; load usb 0:1 ${kernel_addr_r} ${boot_file} && bootm ${kernel_addr_r} - ${dtbparam}
usbdtbload=setenv dtbparam; load usb 0:1 ${fdt_addr_r} ${soc}-apalis-${fdt_board}.dtb && setenv dtbparam ${fdt_addr_r}
vendor=toradex
ver=U-Boot 2015.04 (Jun 28 2016 - 13:19:53)
vidargs=video=tegrafb0:1280x1024-16@60 video=tegrafb1:1680x1050-16@60

Environment size: 5252/8188 bytes

and this is the Linux kernel version I’m using:

root@apalis-t30:~# uname -a
Linux apalis-t30 3.1.10-V2.6b2+gbe10973 #1 SMP PREEMPT Tue Jun 28 13:20:52 CEST 2016 armv7l GNU/Linux

Waiting for your reply, my best regards,

Francesco LANDE

Electronic Center s.r.l.

Please note that VGA output directly from the T30 SoC’s integrated RAMDAC is not really a supported SoC level feature as per the latest NVIDIA T30 data sheet. If your product does need VGA output you would have to design a RAMDAC onto your custom carrier board fed by regular parallel RGB just as done on many of our Colibri carrier boards like e.g. the Colibri evaluation board or Iris.

As for DVI-D aka HDMI output NVIDIA’s X driver will do DDC/EDID and should therefore negotiate a suitable resolution/timing for your connected screen. Please have a look at this article on our developer website for more information.

Looking at the vidargs variable of your U-Boot environment I can see you did try specifying some custom resolution/timing. Did you try the same with the default environment (e.g. env default -a; saveenv)? What exact screen do you plan to hook up by DVI resp. HDMI?

Hi Marcel,
after setting the default environment at U-boot level and connecting an HDMI monitor through a DVI-HDMI cable, I can see now the LXDE desktop.
Thanks for your prompt support!!

Best regards,
Francesco LANDE
Electronic Center s.r.l.