Hallo.
I am using i.MX6 Solo X SABRE board for Smart Devices and I am trying to display to HDMI monitor over HDMI card (MCIMXHDMICARD) instead of LVDS as in Quick Start Guide, but without succsess. I tried modifing mmcargs variable in U-boot, but with no luck. Can someone help me and say what modification should be done in U-boot in order to display things over LCD extention port and HDMI card.
The default printenv in U-boot is:
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 netboot; fi
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:85:a6
ethprime=FEC
fdt_addr=0x83000000
fdt_file=imx6sx-sdb.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_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
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 test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
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} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
panel=Hannstar-XGA
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; sf erase 0x0 ${fw_sz}; sf write ${loadaddr} 0x0 ${filesize}; fi; fi
Environment size: 2377/8188 bytes
Begin of boot information:
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
5545424 bytes read in 257 ms (20.6 MiB/s)
Booting from mmc ...
reading imx6sx-sdb.dtb
48951 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 8300ef36
switch to ldo_bypass mode!
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
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
I appretiate any help.
Hi Marko,
I have consulted with AE team the option of using the MCIMXHDMICARD with the MCIMX6SX-SDB board, as it was originally designed for the i.MX53QSB.
I will post an update as soon as having news.
Best regards!
/Carlos
Hi Marko,
It is supposed that Linux 3.14.28 should have external HDMI (sii902x) support. It is required to ensure that the correct dtb file is being used. imx6sx-sdb-lcdif1.dtb is for HDMI.
Hope this will be useful for you.
Best regards!
/Carlos
Hi Marko,
As commented before, imx6sx-sdb-lcdif1.dtb should be used. Considering a just flashed bootable SD for the MCIMX6SX-SDB board, try adding the following on u-boot command line:
setenv panel 'MCIMX28LCD'
setenv fdt_file 'imx6sx-sdb-lcdif1.dtb'
saveenv
boot
Reference:MCIMX28LCD on i.MX 6SoloX SABRE board
Hope this will be useful for you.
Best regards!
/Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Carlos,
I have tried to do the environment variable changes as suggested, (see the printenv below), but it resulted in kernel panic:
=> printenv
baudrate=115200
boot_fdt=try
bootcmd=run m4boot; 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 netboot;fi;
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:85:a6
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_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
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 test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
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} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
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; sf erase 0x0 ${fw_sz}; sf write ${loadaddr} 0x0 ${filesize}; fi; fi
Environment size: 2387/8188 bytes
Kernel panic at the end:
r7 : 80dc9a5c r6 : 00000014 r5 : 80dc9a5c r4 : 00000001
r3 : 00000000 r2 : a800f200 r1 : 00000001 r0 : 00000000
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 8000404a DAC: 00000015
Process swapper/0 (pid: 1, stack limit = 0xa8072238)
Stack: (0xa8073ee8 to 0xa8074000)
3ee0: a8072000 80d2c1d4 80d56fb8 80dc8ac0 80dc8ac0 8000889c
3f00: a800e900 80c171ec a80a2f00 806dfe84 00000000 00000000 00008ac0 80129438
3f20: 00000000 80d788f0 60000113 00000001 00000008 00000000 abfffa34 80045808
3f40: 80c0c4a4 00000007 00000007 abfffa36 80d788e0 80d62c88 00000007 80d56fb8
3f60: 80dc8ac0 80dc8ac0 0000010a 80d56fbc 00000000 80d13c54 00000007 00000007
3f80: 80d13514 8004e520 00000000 806d34d0 00000000 00000000 00000000 00000000
3fa0: 00000000 806d34d8 00000000 8000e538 00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 75be27af edf71d27
[<80d2c260>] (imx_amp_power_init) from [<8000889c>] (do_one_initcall+0xf8/0x154)
[<8000889c>] (do_one_initcall) from [<80d13c54>] (kernel_init_freeable+0x138/0x1d8)
[<80d13c54>] (kernel_init_freeable) from [<806d34d8>] (kernel_init+0x8/0xe8)
[<806d34d8>] (kernel_init) from [<8000e538>] (ret_from_fork+0x14/0x3c)
Code: e0233496 e0872102 e0844001 e5922004 (e5c31018)
---[ end trace 88d1c1c35acf052f ]---
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
Should I add video variable to mmcargs? This is what is written in boot log regarding display:
MIPI DSI driver module loaded
mxsfb 2220000.lcdif: failed to find mxc display driver
DISPLAY: Power-on latency exceeded, new value 31000 ns
DISPLAY: Power-off latency exceeded, new value 24334 ns
Console: switching to colour frame buffer device 100x30
DISPLAY: Power-off latency exceeded, new value 25000 ns
mxsfb 2220000.lcdif: initialized
mxsfb 2224000.lcdif: registered mxc display driver ldb
mxsfb 2224000.lcdif: initialized
Thanks and Best Regards,
Marko Roganovic
Hi Marko,
You should try with a recently flashed SD card using Linux 3.14.28 (L3.14.28_1.0.0_iMX6SX_BUNDLE on the i.MX6SX downloads). In my case, I have used “fsl-image-gui-x11-imx6sxsabresd.sdcard”, and I didn’t get kernel panic issues.
Hope this will be useful for you.
Best regards!
/Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Carlos,
We added video variable in mmcargs: video=mxc_lcdif:SEIKO-WVGA,bpp=16 (beside fdt_file and panel changes as suggested), and now it is functioning.
Thanks!
Best Regards!
Marko
Hi Marko,
Yes, that was also mentioned on the referenced document MCIMX28LCD on i.MX 6SoloX SABRE board.
I'm glad to hear that it is working now!
Best regards!
/Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If a post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------