I'm trying to get some output over the HDMI from my SABRE board but I'm not getting anything. I'm using a standard HDMI cable connected to a SAMSUNG HDMI monitor, no converters, and I've verified the monitor and the cable work just fine via another input source.
I'm using a 6SX SABRE SDB board... either rev C (SCH-27962 REV C) or A2 (700-27962 REV A2), there's two stickers on the back. On the LCD expansion port (J11) I've connected a Freescale HDMI Port Card (SCH-26673 REVC3/700-26673 REV F).
All the connections seem sound, but I never see anything on the display. I've built both the fsl-image-gui and the fsl-image-qt5 image (with framebuffer backend) but neither seem to output anything. I did some searching and thought it might be a problem with the boot args, another thread got me thinking about that, I tried updating my boot arguments to:
setenv mmcargs 'setenv bootargs console=${console},${baudrate} root=/dev/mmcblk2p2 rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24'
but still no luck. How should I go about figuring out this issue? any thoughts?
Solved! Go to Solution.
The final solution to get HDMI out of the MCIMXHDMICARD with the SoloX SDB board was a combination of environment variables in u-boot being set correctly and a new kernel version. First an upgrade of the base software version to the 3.14.38 branch:
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.38-6UL_ga
Then I used that to build the fsl-image-gui for the solox sabre sd board, and at the bootloader I had to initialize the previously mentioned variables:
setenv fdt_file 'imx6sx-sdb-lcdif1.dtb'
setenv mmcargs 'setenv bootargs console=${console},${baudrate} root=${mmcroot} video=${video}'
setenv panel 'MCIMX28LCD'
setenv video 'mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24'
Finally I was able to boot and get video out of the HDMI. I'm not having the same issue with a static root prompt that I noted in a different thread:
GUI on the fsl-image-gui build
But at least the video is working.
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.38-6UL_ga
can you test it at i.MX6 Quad SABRE board? i have build it several times , the hdmi i's not works
The final solution to get HDMI out of the MCIMXHDMICARD with the SoloX SDB board was a combination of environment variables in u-boot being set correctly and a new kernel version. First an upgrade of the base software version to the 3.14.38 branch:
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.14.38-6UL_ga
Then I used that to build the fsl-image-gui for the solox sabre sd board, and at the bootloader I had to initialize the previously mentioned variables:
setenv fdt_file 'imx6sx-sdb-lcdif1.dtb'
setenv mmcargs 'setenv bootargs console=${console},${baudrate} root=${mmcroot} video=${video}'
setenv panel 'MCIMX28LCD'
setenv video 'mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24'
Finally I was able to boot and get video out of the HDMI. I'm not having the same issue with a static root prompt that I noted in a different thread:
GUI on the fsl-image-gui build
But at least the video is working.
Another interesting point. I just got a i.MX6 Quad SABRE board (with embedded HDMI). I used the exact same setup (HDMI cable, monitor, linux/bootloader version, SD card) bootloader args. And everything works fine on that board.
To clarify, using the same version of the software I made a new build directory with:
MACHINE=imx6qsabresd source fsl-setup-release.sh –b build-qsaber-fb –e fb
bitbake fsl-image-gui
Instead of my original:
MACHINE=imx6sxsabresd source fsl-setup-release.sh –b build-qsaber-fb –e fb
bitbake fsl-image-gui
Then I loaded the .sdcard image to the SD card. I had to set one environment variable on my Quad board:
setenv video 'mxcfb0:dev=hdmi,1920x1080M@60,bpp=32'
setenv mmcargs 'setenv bootargs console=${console},${baudrate} video=${video} root=${mmcroot}'
Then when I booted the board I got output out of the HDMI from the Quad board and I saw the "Yocto" boot progress bar on the screen. When I do the EXACT SAME set of steps (except configuring for the SoloX) on the SoloX board, I do not see any output from the HDMI.
Hi Michel,
I tried the above command and can see that HDMI screen is up. but the gui is not fitting to the screen correctly.
i am using Lilliput 8"-inch lilliput display and Imx6qp sabre-sd board.
Regards,
Guru V
Hi Michael
this card was used for i.MX53, usage with i.MX6SX is described on
https://community.freescale.com/thread/353083
https://community.freescale.com/message/363791#363791
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I also missed one possible option for the "video" setting which I've now tried, but with the same lack of success:
video=mxcdi0fb:RGB24,1920x1080M@60 hdmi di0_primary
Hi Igor,
Good links, but it doesn't seem to be helping with the exception of gathering more data. It's correct that like the first link I'm also trying to get a MCIMXHDMICARD to work on a i.MX6 Solo X SABRE board, and I was using the same kernel version and initially loading the same device tree as that user, but adding the additional environment variables into my bootloader set up didn't seem to help. Here's some excerpts from my bootlog:
Bootloader Environment:
=> printenv
baudrate=115200
boot_fdt=try
bootcmd=mmc dev ${mmcdev};if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run neti
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0
ethact=FEC0
ethaddr=00:04:9f:03:89:1c
ethprime=FEC
fdt_addr=0x83000000
fdt_file=imx6sx-sdb-lcdif1.dtb
fdt_high=0xffffffff
image=zImage
initrd_addr=0x83800000
initrd_high=0xffffffff
ip_dyn=yes
loadaddr=0x80800000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadm4image=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${m4image}
m4boot=sf probe 1:0; bootaux 0x78000000
m4image=m4_qspi.bin
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_stora
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot} video=${video}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if t;
mmcdev=2
mmcpart=1
mmcroot=/dev/mmcblk3p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${image}; if test ${boot_fdt};
panel=MCIMX28LCD
script=boot.scr
update_m4_from_sd=if sf probe 1:0; then if run loadm4image; then setexpr fw_sz ${filesize} + 0xffff; setexpr fw_sz ${fw_sz} / 0x10000; setexpr fw_sz ${fw_sz} * 0x10000; i
video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24
Environment size: 2444/8188 bytes
So there you can see I've set the "panel", "fdt_file", and "video" as requested. For video that was my second attempt, I tried the noted: "video=mxc_lcdif:SEIKO-WVGA,bpp=16" but that didn't work either and I think that's incorrect for the HDMI anyway.
=> boot
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
5545424 bytes read in 256 ms (20.7 MiB/s)
Booting from mmc ...
reading imx6sx-sdb-lcdif1.dtb
48947 bytes read in 19 ms (2.5 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x549dd0 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300ef32
switch to ldo_bypass mode!
Here in the boot command you can see it found and is reading the correct dtb file. Then below in the boot log you can see the command line I set as well as the linux version I'm using:
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 3.10.53-1.1.0_ga+g496fbe0 (jenkins@scmbl1) (gcc version 4.8.2 (GCC) ) #1 SMP PREEMPT Mon Jan 5 15:55:14 CST 2015
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Freescale i.MX6 SoloX (Device Tree), model: Freescale i.MX6 SoloX SDB Board
cma: CMA: reserved 320 MiB at ac000000
Memory policy: ECC disabled, Data cache writealloc
PERCPU: Embedded 8 pages/cpu @81598000 s8960 r8192 d15616 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1024MB = 1024MB total
Memory: 697256k/697256k available, 351320k reserved, 0K highmem
Nothing more interesting in the boot of the kernel, but here after the boot finishes you can see the command line, uname, dmesg (searching for any HDMI messages), also loaded device drivers and framebuffer information:
Stopping Bootlog daemon: bootlogd.
Poky (Yocto Project Reference Distro) 1.6.2 imx6sxsabresd /dev/ttymxc0
imx6sxsabresd login: root
root@imx6sxsabresd:~# cat /proc/cmdline
console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24
root@imx6sxsabresd:~#
root@imx6sxsabresd:~# uname -a
Linux imx6sxsabresd 3.10.53-1.1.0_ga+g496fbe0 #1 SMP PREEMPT Mon Jan 5 15:55:14 CST 2015 armv7l GNU/Linux
root@imx6sxsabresd:~#
root@imx6sxsabresd:~# dmesg | grep "hdmi"
[ 0.000000] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24
root@imx6sxsabresd:~#
root@imx6sxsabresd:~# fbset -i
mode "800x480-60"
# D: 33.501 MHz, H: 31.515 kHz, V: 60.259 Hz
geometry 800 480 800 480 16
timings 29850 89 164 23 10 10 10
rgba 5/11,6/5,5/0,0/0
endmode
Frame buffer device information:
Name : mxs-lcdif0
Address : 0xb4600000
Size : 8358400
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 1
YWrapStep : 0
LineLength : 1600
Accelerator : No
root@imx6sxsabresd:~#
root@imx6sxsabresd:~# cat /sys/class/graphics/fb
fb0/ fb1/ fbcon/
root@imx6sxsabresd:~# cat /sys/class/graphics/fb0/modes
U:800x480p-60
U:800x480p-60
root@imx6sxsabresd:~# cat /sys/class/graphics/fb1/modes
U:1024x768p-60
root@imx6sxsabresd:~#
root@imx6sxsabresd:~# lsmod
Module Size Used by
ov5642_camera 75119 0
mxc_vadc_tvin 6408 0
mxc_dcic 5334 0
ov5640_camera 17959 0
evbug 1476 0
csi_v4l2_capture 17745 1
fsl_csi 5380 1 csi_v4l2_capture
In here it's interesting that fbset is telling me that it's 800x480p-60 so clearly it's using fb0. Seems that the video option isn't setting anything for the framebuffer.