I have built a yocto distro for fsl-imx-xwayland and iMX8QM-MEK machine with v5.4.70 kernel version as below.
I wish to output from 3 panels: 2 of them are LVDS outputs and 1 of them is HDMI output, all of them at the same time.
2 x panels have physical resolution 1920x720@60 and connected to iMX8QM-MEK eboard via LVDS lines with dual mode as represented figure below.
1 x panel has physical resolution 2400x900@60 and connected to iMX8QM-MEK eboard via HDMI port.
* When I use the attached DTS file imx8qm-mek-hdmi.dts.txt, 2400x900@60 panel works fine which is connected to HDMI port. But there are no outputs on LVDS panels.
* When I use the attached DTS files imx8qm-mek-jdi-wuxga-lvds1-panel.dts.txt and imx8qm-mek-jdi-wuxga-lvds1-panel.dtsi, both 1920x720 LVDS panels work fine but there is no output on 2400x900@60 panel which is connected to HDMI port. If I unplug the HDMI connection from 2400x900@60 panel and plug a standard 1280x720@60 PC monitor via HDMI port, there is an output (works fine) on that PC monitor.
On the other hand, I have set the u-boot bootargs variable to adjust the HDMI output setting as below.
bootargs=root=/dev/mmcblk0p1 rootwait rw video=mxcdi0fb:RGB24,2400x900M@60,hdmi video=mxcdi1fb:RGB666,XGA,di0_primary ldb=di1 ip=none
Note: DTS files are attached.
We cannot meet the criteria I show in the figure. What do I need to do to provide the resolutions in the options given here?
Even though I took 2 LVDS and HDMI together, it was not possible to reach the resolutions I wanted and shown in the figure.
Can you provide the source for the slide "Seeris Display Output Capabilities"?
Can you also provide video mode definitions and/or EDIDs for the displays that you tried?
The current driver has a single display pipe width limit of 2560 pixels. This means that 2 2560 width displays are possible on a single display pipe. Which also means that up to 3 or 4 2560 width displays are possible. Or one larger display up to 5120 pixel width and two displays up to 2560 width.
Hello @OliverB ,
We are trying to get at least 2 panels (one of them HDMI, one of them LVDS). Now 1 LVDS(1920x720) and 1 HDMI(1920x720) work fine. However when we changed HDMI with 2400x900 monitor, there is no image in the monitor. You can see reference slide as attached. Could you please give a way to find root cause of this issue?
hkaracali and tuncayyldrm,
Are you working with nevozade? If not please, start another thread to avoid confusion.
Can you provide the full boot log as follows:
Sorry to keep asking for logs, but this may be the only way I can help?
When we tried to get the log you requested from us, we encountered the error that the 'modetest command not found'. Several solutions we found on the internet did not help us run the modetest command. We saw the message that libraries such as libdrm-dev already newest version installed when we tried to install some libraries. Do you have an alternative for modetest or an idea to solve this problem instead ?
You may be using the core-image-minimal. Can you start a new yocto build with imx-image-multimedia or imx-image-full?
Alternatively, you could use the prebuilt images to test this also from here:
Then you could build the kernel sources from here:
Remember to apply the patch attached here. I found the dts file was missing - sorry. So use this patch!
And Finally set the boot environment:
=> setenv fdt_file imx8qm-mek-jdi-wuxga-lvds0-lvds1-panel-hdmi.dtb
Saving Environment to MMC... Writing to MMC(1)... OK
Yes @OliverB , we are working together on this issue, you can accept their replies like I wrote.
No problem for us to ask logs or other files, we all aim to solve this problem. Sorry for responding late, we are in very far time zones. We are going to provide what you requested.
I was able to get HDMI working with LVDS0 and LVDS1. The HDMI display needs to be limited to 2560 pixels or less and less than 300MHz pixel clock. Otherwise LVDS0 will not have a display. In this patch I also had to disable hdmi audio due to a probe conflict. Let me know if this is working for you.
Hello @OliverB ,
Firstly, thanks for your quick reply, this issue is so urgent and important to me.
I have applied your patch and 1 HDMI and 2 LVDS work now. However still I have a problem. Now just I can get 1920x1080 resolution from HDMI; but I need 2400x900 like FHD+. Without your patch if I use imx8qm-mek-hdmi.dtb, HDMI (2400x900) works; but not any LVDS. If I use imx8qm-mek-jdi-wuxga-lvds1-panel.dtb, just 2 LVDS work, no HDMI. When I apply your patch 2 LVDS OK; just HDMI (1920x1080) OK, not 2400x900. What is the reason of not working 2400x900 with LVDSs and how can I solve this problem? Or is this case possible?
I'm not sure why it is not working for your resolution. Can you you provide the EDID from you 2400x900 monitor? You can just provide the output of "modtest" from when your monitor is working in HDMI mode. I'll have to set this mode on my analyzer and see what is causing the problem. Both the display controller driver and HDMI Driver should allow this mode in a single display pipe. It's possible "1920" is hardcoded somewhere in the drivers.
Hi @OliverB ,
Actually, we analyzed the EDID of our monitor before and we saw that 2400x900. According to your request, I am sending you the edid file for you to analyze and find the problem. I am asking for your support in this matter. (I attach the file as .zip because the .bin extension has failed to upload)
I verified that HDMI 2400x900 and two LVDS 1920x1200 can work with your edid and 0001-arm64-boot-dts-freescale-Add-configuration-for-two-L.patch. I did not need any uboot changes or weston.ini changes. I also previously verified that 2560 width can work, this would be the upper limit of the width for a single display pipe.
Also the settings below are not for iMX8QM and should not be used:
video=mxcdi0fb:RGB24,2400x900M@60,hdmi video=mxcdi1fb:RGB666,XGA,di0_primary ldb=di1
These are for iMX6DQ with IPUv3.
To force a DRM mode the form should be
My patch supports the dual-channel 1920x1200 NXP display panel, so some change would be needed to get change the panel and disable dual channel mode.
Although I think I'm doing it right, just in case could you zip and share the freescale folder (including dts and dtsis) in build/tmp/work-shared/imx8qmmek/kernel-source/arch/arm64/boot/dts/ path with me? I want to make sure I'm doing the same thing you did before I move forward.
Even I use your patch, HDMI 2400x900 and LVDS not working for me. If I disabled lvds-channel@0 HDMI works. If I make "okay" lvds-channel@0 LVDS works. It seems when HDMI starts to work LVDS disabled automatically. You can my final dts as attached. What is the reason of this issue?
Hi @OliverB ,
All specified files exist in the attached zip file.
Can you try this file? The LVDS nodes were disabled.
All three display are working with this file included as follows:
@@ -5,4 +5,4 @@