imx8qm DPU transition from u-boot

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

imx8qm DPU transition from u-boot

704 Views
Mantilla
Contributor I

Hi community, I am working with a custom board based on imx8qm-mek.

I managed the LVDS displays to have a splash screen transition from u-boot to the kernel, as DSI is not fully supported at the moment in u-boot. For that I keep the related power domains powered on when booting the kernel.

Now the problem arises when probing and starting the display subsystem in the kernel, with only the 2 LVDS displays it looks like it works although I see some errors:

[ 41.952572] dc0_disp1_clk: Resource:32 reported EBUSY when trying to set clock parent 3
[ 41.961363] dc1_disp1_clk: Resource:49 reported EBUSY when trying to set clock parent 3
[ 43.007270] [drm] [CRTC:38:crtc-0] dpu_crtc_atomic_enable: wait for content shdld done timeout
[ 44.159488] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: wait for safety shdld done timeout

The EBUSY is from the SCU and that is normal as that clock has been set at u-boot time, I just ignore that message and assign the clock parent:

@@ -363,9 +363,21 @@ static int clk_scu_set_parent(struct clk_hw *hw, u8 index)
msg.parent = index;

ret = imx_scu_call_rpc(ccm_ipc_handle, &msg, true);

+ if(ret==-EBUSY) {
+     clk->parent_index = index;
+     pr_info("%s: Resource:%d reported EBUSY when trying to set clock parent %d\n",
+                  clk_hw_get_name(hw), clk->rsrc_id, index);
+     return 0;
+ }

And this works only with those warnings previosly mentioned. But when I have a DSI display also connected then it does not work properly, only 1 or no display are showing Weston desktop and I see the following errors:

[ 41.952572] dc0_disp1_clk: Resource:32 reported EBUSY when trying to set clock parent 3
[ 41.961363] dc1_disp1_clk: Resource:49 reported EBUSY when trying to set clock parent 3
[ 43.007270] [drm] [CRTC:38:crtc-0] dpu_crtc_atomic_enable: wait for content shdld done timeout
[ 43.115214] dpu-core 56180000.dpu: failed to wait for FrameGen0 secondary syncup
[ 44.159488] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: wait for safety shdld done timeout
[ 44.267212] dpu-core 56180000.dpu: failed to wait for FrameGen1 secondary syncup
[ 44.274615] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: FrameGen requests to read empty FIFO
[ 45.311538] [drm] [CRTC:96:crtc-2] dpu_crtc_atomic_enable: wait for content shdld done timeout
[ 45.419213] dpu-core 57180000.dpu: failed to wait for FrameGen0 secondary syncup
[ 46.463513] [drm] [CRTC:125:crtc-3] dpu_crtc_atomic_enable: wait for safety shdld done timeout
[ 46.571213] dpu-core 57180000.dpu: failed to wait for FrameGen1 secondary syncup
[ 46.578609] [drm] [CRTC:125:crtc-3] dpu_crtc_atomic_enable: FrameGen requests to read empty FIFO

When disabling this logo transition everything works fine, so I would like to get some input on how to handle this transition from a running DC subsystem from u-boot to kernel, maybe some documentation of the DPU so I can figure out how to properly do this transition?

Thanks in Advance!

Alfredo

Tags (1)
0 Kudos
Reply
3 Replies

627 Views
Chavira
NXP TechSupport
NXP TechSupport

Hi @Mantilla!
Thank you for contacting NXP Support!

We have a community post on how to add LVDS drivers in Uboot.

Please check that post and try to implement the driver using our recommendations.

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Add-i-MX93-LVDS-driver-in-uboot/ta-p/167...


Best Regards!

Chavira

0 Kudos
Reply

610 Views
Mantilla
Contributor I
Hi @Chavira, thanks for the reply.

U-boot already has LVDS support for the imx8qm and I have it working, the DSI is also not a big problem as we know how to adapt the existing drivers to make it work.

The only problem is the DPU and the DRM subsystem, how to reset the display subsystem and the DPU when transitioning from u-boot. As the DPU and LVDS resources are kept on in the transition and configured by u-boot

Best Regards, Alfredo
0 Kudos
Reply

534 Views
Chavira
NXP TechSupport
NXP TechSupport

Hi @Mantilla!

 

You can refer to this documentation:

 

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/An-attempt-to-keep-uboot-logo-before-Lin...

 

https://community.nxp.com/t5/i-MX-Graphics-Knowledge-Base/Test-to-keep-u-boot-logo-util-system-scree...

 

Also, we have an internal test using iMX93 (I will send you the proper patches), which you can get based on that documentation to get success in your project.

 

Best Regards!

Chavira

0 Kudos
Reply