Getting a 4K HDMI output on MCIMX8M-EVK

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Getting a 4K HDMI output on MCIMX8M-EVK

3,438 Views
louisryan
Contributor II

I was trying to get 4K hdmi output working with linux but I could not get it to work. ( 1920 x 1080 works fine )

For 1080p I used this for u-boot which works.

setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:1920x1080-32@60'

I am using NXP i.MX Release Distro 4.9.51-mx8-beta

 

I have tried a few different options to get 4K to work but none work

setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:3840x2160-32@60'
setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:4096x2160-32@60'

setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:3840x2160-32@30'
setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:3840x2160-32@25'

 

I am using MCIMX8M-EVK part number 700-29615 REV A

 

And ideas?

Labels (3)
0 Kudos
6 Replies

1,678 Views
diegoadrian
NXP Employee
NXP Employee

Hello,

I am using the TLC 49S405 4K TV screen. Furthermore, I did not see the kernel boot up sequence. However, when the GUI started, I could see the image of the Yocto menu.

Furthermore, wich power source are you using? Are you only powering the board with the type c connector?

Best Regards,

Diego.

0 Kudos

1,678 Views
louisryan
Contributor II

Thanks Diego,

I am using the PSU that was supplies with the board.

I am out of the office for a few days. I will do some more testing when \i get back.

Regards,Louis

0 Kudos

1,678 Views
diegoadrian
NXP Employee
NXP Employee

Hello,

Have you tried with the default bootargs? The default Bootargs that the image has, are for 4K video output.

Best Regards,

Diego.

0 Kudos

1,678 Views
louisryan
Contributor II

Hi Diego,

"Have you tried with the default bootargs? The default Bootargs that the image has, are for 4K video output"

I use this image : fsl-image-qt5-validation-imx-xwayland-imx8mqevk.sdcard ( prebuild binary from nxp )

I copy to SD Card:  sudo dd if=fsl-image-qt5-validation-imx-xwayland-imx8mqevk.sdcard of=/dev/sdf bs=1M && sync

When I apply power to the board I get the linux boot process  via the debug uart. But there is no HDMI output. See the u-boot printenv output below.

"For 1080p I used this for u-boot which works.

setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:1920x1080-32@60'"

But I want it to work for 4K. What do you think I should change?

Thanks

Louis

U-BOOT - Printenv

----------------------------------------------------------------------------------------------------------------------------------------------------------

U-Boot SPL 2017.03-imx_v2017.03_4.9.51_imx8m_beta+g0adb492 (Dec 22 2017 - 04:21:08)
PMIC: PFUZE100 ID=0x10
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
PLL bypass to 100MTS setting done
Training PASS
PLL bypass to 400MTS setting done
Training PASS
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
Training PASS
Normal Boot
Trying to boot from MMC2


U-Boot 2017.03-imx_v2017.03_4.9.51_imx8m_beta+g0adb492 (Dec 22 2017 - 04:21:08 +0800)

CPU: Freescale i.MX8MQ rev2.0 1500 MHz (running at 1000 MHz)
CPU: Commercial temperature grade (0C to 95C) at 38C
Reset cause: POR
Model: Freescale i.MX8MQ EVK
DRAM: 3 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
switch to partitions #0, OK
mmc1 is current device
Net:
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000
Normal Boot
Hit any key to stop autoboot: 0
u-boot=> 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 booti ${loadaddr} - ${fdt_addr}; fi
bootcmd_mfg=run mfgtool_args;booti ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=2
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0,115200 earlycon=ec_imx6q,0x30860000,115200
ethaddr=00:04:9f:05:68:f1
ethprime=FEC
fdt_addr=0x43000000
fdt_file=fsl-imx8mq-evk.dtb
fdt_high=0xffffffffffffffff
fdtcontroladdr=ff91dc48
image=Image
initrd_addr=0x43800000
initrd_high=0xffffffffffffffff
loadaddr=0x40480000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
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="" clk_ignore_unused
mmcargs=setenv bootargs console=${console} 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 booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; else echo wait for boot; fi;
mmcdev=1
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
netargs=setenv bootargs console=${console} 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} ${loadaddr} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; else booti; fi;
script=boot.scr
stderr=serial
stdin=serial
stdout=serial

Environment size: 2036/4092 bytes

0 Kudos

1,678 Views
diegoadrian
NXP Employee
NXP Employee

Hello,

Can you please tell the exact part number of your board? I tested with the same image and the same bootargs (I used the last option of your bootargs) that you used, and it worked on my board. Furthermore, it also can be the display that you are using.

Best Regards,

Diego.

0 Kudos

1,678 Views
louisryan
Contributor II

Hi Diego,

I am using MCIMX8M-EVK part number 700-29615 REV A - SCH-29615 REV B3

When I use the last option

"setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:3840x2160-32@25'"

I get

[   13.679888] [drm:imx_hdp_bridge_mode_set] *ERROR* Unsupport video mode now, 3840x2160, clk=278781
[   14.355477] [drm:imx_hdp_bridge_mode_set] *ERROR* Unsupport video mode now, 3840x2160, clk=278781

when I use

setenv mmcargs 'setenv bootargs console=${console} root=${mmcroot} video=HDMI-A-1:3840x2160-32@60'

I get

[ 102.219377] VIC 3, pixel clock 594000 kHz
[ 102.223681] Pixel clock frequency: 594000 kHz, character clock frequency: 594000, color depth is 8-bit.
[ 102.233272] VCO frequency is 5940000 kHz
[ 102.239841] CDN_API_General_Write_Register_blocking LANES_CONFIG ret = 0
[ 102.455079] [drm] HDMI/DP Cable Plug In

There is no error but I get no output.

The monitor I am using does support 3840x2160 and I have tested this. Do you have the make and model of the monitor you are using?

Regards,

Louis

0 Kudos