imx8mp Dual screen HDMI and eDP Kernel 6.12

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

imx8mp Dual screen HDMI and eDP Kernel 6.12

1,147 Views
a-s-g
Contributor II

Hi guys,

I've been integrating HDMI and eDP on the imx8mp SECO D18 board (SOM).
Kernel 6.12

We use weston in our application.

I was able to successfully integrate both interfaces and they work separately well (used SECO overlays from their GIT repo). 
As soon as I enable eDP in addition to HDMI, the screen output always goes to eDP, an external HDMI monitor remains black. As soon as I disable eDP, HDMI works. 

I see both dri devices at /dev/dri and /sys/kernel/debug/dri ... but I have only 1 CRTC. 
modetest on both devices gives me a perfect test pattern on both escreens!

I've tired all possible weston configurations (setting different output devices ets.), but nothing helps. Weston also "sees" only one output device. 

I think the problem is depper either at the driver level and DevTree or in kernel (configuration). 

We have a reference application running based on SECO's CleaOS (but older Kernel 5.1) with dual screen output.

My suspicion: In their Device Tree they use one node that accomodates lcdif :

display-subsystem {
compatible = "fsl,imx-display-subsystem";
ports = <&lcdif1_disp>,
<&lcdif2_disp>,
<&lcdif3_disp>;
};
 
If you look at 
/sys/kernel/debug/dri# cat 1/name in CleaOS
they have one display device:
imx-drm dev=display-subsystem unique=display-subsystem
I think that's the difference!
 
I do the same in my DevTree, but somehow the driver behind (drivers/gpu/drm/imx/ipuv3/imx-drm-core.c) is not being called, some Kernel CONFIGs, for example ...PARALLEL_DISPLAY seems to be not available in our kernel.   
 

Has anyone a similar issue with dual screen output?

 

 

0 Kudos
Reply
5 Replies

1,070 Views
a-s-g
Contributor II

... you're right, imx8mp doesn't support eDP natively, just checked HW stuff. SECO uses a mipi_dsi to eDP bridge from TI (SN65DSI86) on their SOM (D18): https://secogroup.atlassian.net/wiki/spaces/SECOTech/pages/1403914376/SOM-SMARC-MX8M-Plus+D18

Simplified HW signal flow is as following,
[Samsung DSI HOST @ imx8mp] ---mipi_dsi--->[TI
SN65DSI86 bridge]---edp--->[eDP DP LCD Panel].

SW/Device tree pipe eDP (DTS Files: imx8mp.dtsi, 
seco-imx8mp-d18.dts):
LCDIF1->DSI HOST->TI SN65DSI86->LCD Panel(
boe,ev156fhm)

SW/Device tree pipe HDMI (DTS Files: imx8mp.dtsi, seco-imx8mp-d18.dts):
LCDIF3->HDMI_PVI->HDMI_TX->HDMI-CONNECTOR

All device tree additons for HDMI and eDP come from SECO 5.10 Kernel (seco and freescale subfolders and then overlays):
https://git.seco.com/pub/i.mx/yocto/5.x/linux-seco-imx/-/tree/ohos/develop/imx_5.10.35_2.0.0/arch/ar...

We currently use Mainline kernel 6.12 RC2.

One big difference: SECO has one virtual DRM device that is connected to all lcdif[X] and the apps above use that virtual device for drawing to all screens. Mainline kernel 6.12 doesn't support this architecture (at least I couldn't see anything like that).  

Thanks in advance for support

0 Kudos
Reply

1,082 Views
a-s-g
Contributor II
Hi Bio,
imx8mp defenitely support embedded Display Port and HDMI as well, as you've mentioned.
Simplified signal flow, lcdif1 is used for eDP and lcdif3 for HDMI.
LCDIF_1 > DSI> SN65DSI86 > eDP-Panel 
 
They run nicely separately but if you want to mirror them, for example when running weston, it doesn't work at driver level, you need to tell weston to use both devices HDMI and eDP otherwise you have picture only on the eDP panel
0 Kudos
Reply

1,094 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

8MP can only support HDMI, not support DP. How you connect the dp port monitor? Could you give a framework picture to show their connection?

Regards

0 Kudos
Reply

973 Views
a-s-g
Contributor II

... any ideas? 

0 Kudos
Reply

1,022 Views
a-s-g
Contributor II

... you're right, imx8mp doesn't support eDP natively, just checked HW stuff. SECO uses a mipi_dsi to eDP bridge from TI (SN65DSI86) on their SOM (D18): https://secogroup.atlassian.net/wiki/spaces/SECOTech/pages/1403914376/SOM-SMARC-MX8M-Plus+D18

Simplified HW signal flow is as following,
[Samsung DSI HOST @ imx8mp] ---mipi_dsi--->[TI
SN65DSI86 bridge]---edp--->[eDP DP LCD Panel].

SW/Device tree pipe eDP (DTS Files: imx8mp.dtsi, 
seco-imx8mp-d18.dts):
LCDIF1->DSI HOST->TI SN65DSI86->LCD Panel(
boe,ev156fhm)

SW/Device tree pipe HDMI (DTS Files: imx8mp.dtsi, seco-imx8mp-d18.dts):
LCDIF3->HDMI_PVI->HDMI_TX->HDMI-CONNECTOR

All device tree additons for HDMI and eDP come from SECO 5.10 Kernel (seco and freescale subfolders and then overlays):
https://git.seco.com/pub/i.mx/yocto/5.x/linux-seco-imx/-/tree/ohos/develop/imx_5.10.35_2.0.0/arch/ar...

We currently use Mainline kernel 6.12 RC2.

One big difference: SECO has one virtual DRM device that is connected to all lcdif[X] and the apps above use that virtual device for drawing to all screens. Mainline kernel 6.12 doesn't support this architecture (at least I couldn't see anything like that).  

Thanks in advance for support

 
 
Tags (4)
0 Kudos
Reply