Enabling multiple-display function on iMX8QM 2 for A-core & 2 for M-core

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

Enabling multiple-display function on iMX8QM 2 for A-core & 2 for M-core

1,626 Views
Jose1985
Contributor IV

Dear Team,

SW: Android Automotive 13.0.0_1.1.0

HW: iMX8QM MEK

Application core : Android

M4 core              : Free RTOS

Please refer the below table.

I need to run below requirements simultaneously.

Requirement 1:  I need to drive 2 displays from Android (LVDS0_CH0, MIPI_DSI1)

Requirement 2:  I need to drive 2 displays from FreeRTOS (HDMI_TX,  LVDS1_CH0)

Is it possible? If so, can you help with the changes required.

 

Reference : 8.3.2 Enabling multiple-display function

BoardNumber of displaysDisplay port
i.MX 8QuadMax MEK4HDMI_TX, LVDS0_CH0, LVDS1_CH0, MIPI_DSI1
Optional4LVDS0_CH0 and LVDS1_CH0, MIPI_DSI0 and MIPI_DSI1


Best regards

Jose.

0 Kudos
Reply
12 Replies

1,574 Views
Jose1985
Contributor IV

Hi @Sanket_Parekh ,

Any update?

best regards

Jose

0 Kudos
Reply

1,554 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hello @Jose1985 

I hope you are doing well.

Yes, it is possible to drive two displays from Android and two displays from FreeRTOS simultaneously. 
->Please make sure that the displays must be connected to different video ports. One cannot connect both displays to the same video port.
->Please make sure that the displays must be configured to use different resolutions and refresh rates. One cannot configure both displays to use the same resolution and refresh rate.
->Please make sure that the displays must be driven by different CPUs.(one by A-core & one by M-core) One cannot drive both displays from the same CPU.

I hope this information helps!
 
Thanks & Regards,
Sanket Parekh
0 Kudos
Reply

1,539 Views
Jose1985
Contributor IV

Dear @Sanket_Parekh ,

Thank you for confirming. However, I need the details from DTS file point of view

Could you let me know what is the combination of DPU's to port mapping? DPU1 mapped to which ports and DPU2 mapped to which ports?

This is our detailed requirement:

Android runs on 6 A-core (2 A-73 & 4 A-53) : I want to drive LVDS-0 (1920x1080) & MIPI-0 (1920x720) from Android

FreeRTOS run on 2 M4-core : I want to drive LVDS-1 (800x400) & HDMI Tx/MIPI-1 (800x400) from FreeRTOS

 

Could you help me with the DTS modification that I need to do in Android kernel to enable only LVDS0 & MIPI0 ?

Best regards,

Jose

 

0 Kudos
Reply

1,512 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport
Hello @Jose1985 

I hope you are doing well.

Please find the example given below for the same.
Please refer to it.

&mipi0_disp {
    compatible = "fsl,imx8mp-mipi-display";
    disp-type = "mipi-dsi";
    status = "okay";
    port@0 {
        endpoint {
            remote-endpoint = <&dpu1_mipi0>;
        };
    };
};

&lvds0_disp {
    compatible = "fsl,imx8mp-lvds-display";
    disp-type = "lvds";
    status = "okay";
    port@0 {
        endpoint {
            remote-endpoint = <&dpu1_lvds0>;
        };
    };
};

For more details please refer to the location given below.
Documentation/devicetree/bindings/display/

Thanks & Regards,
Sanket Parekh
0 Kudos
Reply

1,455 Views
Jose1985
Contributor IV

Dear @Sanket_Parekh ,

I tried following points :

  • Android disable LVDS1 from DTS file of Android Linux kernel ==> Successful, now Android display only from LVDS0
  • FreeRTOS shows camera view from CSI0 (OV5640) on LVDS1 as soon as boot up => Successful

However, when Android boots up, for some reason the display/camera goes down and the LVDS1 screen is blank. We suspect that there is some thing happening at vehicle_rpmsg_m4 driver is doing something without any specific logs.  Do you have any idea why it happens?

Our requirement is to

  1. Show camera CSI0 view on LVDS1 display driven by FreeRTOS ==> Not successful after Androdi boots.
  2. Show Android UI/UX on LVDS0 ==> Successful

 

Best regards

Jose

 

Tags (1)
0 Kudos
Reply

1,416 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hello @Jose1985 ,

I hope you are doing well.

->Please make sure to check the CSI0 configuration, also check the csi0 is being used by m-4 only.
->If one is capturing it by a-53 and then passing it by rpmsg to m4.
->Please share the CSI0 configurations.

Thanks & Regards,
Sanket Parekh

0 Kudos
Reply

1,403 Views
Jose1985
Contributor IV

Dear @Sanket_Parekh ,

 

LVDS1 & CSI0 is initially used by M4 core by rear_view_camera app.

However, when Androdi boots up vehicle_rpmsg_m4 driver inserts fsl,resource such as &lvds1_subsys, &dc1_subsys & img0_subsys from notice_evs_release.

 

My question is,

  1. What is dc1_subsys0? is it power domain?
  2. I dont want to enable lvds* node, but only mipi-dsi0 for Android.
  3. We believe img0_subsys is for camera and removing it from vehicle_rpmsg_m4 DTS node shall remove camera being up in A-core

 

Could you please let me know which node to enable for MIPI-DSI0 in DTS file so that vehicle_rpmsg_m4 doesn't affect LVDS1 output from m4?

 

Best regards

Libin Jose

 

0 Kudos
Reply

1,369 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hello @Jose1985 ,

I hope you are doing well.
Please accept my apology for the delayed response.

->DC1_subsys0 is a power domain that controls the MIPI-DSI0 controller.
->LVDS1 controller is controlled by the lvds1_subsys node.

&mipi_dsi0 {
compatible = "fsl,imx8qm-mipi-dsi";
status = "okay";
};
This will enable the MIPI-DSI0 controller and allow Android to use it. The LVDS1 controller will not be affected by this change.

I hope this helps!

Thanks & Regards,
Sanket Parekh

0 Kudos
Reply

1,322 Views
Jose1985
Contributor IV

Dear @Sanket_Parekh ,

It doesnt seems to work. Can you please let me know how can we enable all.display for Android. this means I need 4 displays lvds0, lvds1, dsi0 & dsi1.

 

Best regards

Jose

0 Kudos
Reply

1,297 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hello @Jose1985 ,

I hope you are doing well.

"It doesn't seems to work. Can you please let me know how can we enable all? display for Android. this means I need 4 displays lvds0, lvds1, dsi0 & dsi1"
->Please check the all the port nodes in the device tree are enabled or not.
If not then please make it okay instead of disabled.
status="okay"

The driver for the LVDS panel is drivers/gpu/drm/panel/panel-simple.c
Therefore one needs to enable CONFIG_DRM_PANEL_SIMPLE=y in the defconfig.

I hope it helps!

Thanks & Regards,
Sanket Parekh

0 Kudos
Reply

1,602 Views
Jose1985
Contributor IV

Dear Sanket,

I tried this option but for Android the display is coming from LVDS0_CH0 (Primary) and LVDS1_CH0 (Secondary).

But my requirement is slightly different:

For Android, I need LVDS0_CH0 & MIPI_DSI0 

For RTOS, I need LVDS1_CH0 & HDMI

 

Is this combination possible? Basically, I need to drive 2 display from Android simultaneously and 2 display from FreeRTOS

 

Best regards

Jose

0 Kudos
Reply

1,608 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hello @Jose1985 

I hope you are doing well.

->Please refer to section 8.3.2 Enabling multiple-display function in the Android user guide.
https://www.nxp.com/docs/en/user-guide/ANDROID_USERS_GUIDE.pdf?_gl=1*hcjvrf*_ga*NDkxMzM1NzM0LjE2ODY3.....

I hope this information helps!

Thanks & Regards,

Sanket Parekh

0 Kudos
Reply