Freescale's kernel defines two arguments that determine which display interface (DI) to use: di0_primary and di1_primary. The VGA connector is hooked up to DI1 and the HDMI to DI0.
The U-Boot environment on my Ubuntu SD card has these values in it:
hdmi=setenv bootargs console=ttymxc0,115200 video=mxcdi0fb:RGB24,1024x768M@60 hdmi di0_primary
vga=setenv bootargs console=ttymxc0,115200 video=mxcdi1fb:GBR24,VGA-XGA di1_primary vga
The bootargs_base variable is set by default to use the vga settings:
bootargs_base=setenv bootargs console=ttymxc0,115200 gpu_nommu ${vga}
Change this to use the hdmi settings by running these commands in U-Boot from a clean boot:
setenv bootargs_base 'setenv bootargs console=ttymxc0,115200 gpu_nommu ${hdmi}'
saveenv
boot
Make sure you do this from a clean boot or you risk saving environment variables that have been modified by the boot process.