Add support for u-boot splash on MIPI-DSI display

Hi there,

I am using the Verdin iMX8MP with the Verdin Development Board and running BSP version 7.0 scarthgap (tdx-reference-multimedia-image). Now, I want to bring up the MIPI DSI display in U-Boot to show the U-Boot splash screen on it.

The issue is that the drivers required to run the MIPI DSI display, such as imx_lcdifv3.c and sec_dsim_imx.c, are not present in the current U-Boot source.

Can you help me understand how to add these drivers or modify U-Boot to enable support for the MIPI DSI display?

Thanks,
Pratham

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello Pratham,

Thank you for your detailed question.

Bringing up a MIPI DSI display in U-Boot on the Verdin iMX8MP is a challenging task, as support for advanced display interfaces like MIPI DSI is limited in U-Boot—especially compared to what is possible in the Linux kernel. As you noticed, key driver files such as imx_lcdifv3.c and sec_dsim_imx.c (present in Linux) are not part of the U-Boot codebase for this platform.

Current Status in Toradex BSP:

  • The Toradex U-Boot for Verdin iMX8M Plus focuses mainly on basic console output and controlling simple framebuffers for interfaces like LVDS or parallel RGB when supported by the SoC and available drivers.
  • Bringing up a complex interface like MIPI DSI in U-Boot would require either significant porting of Linux kernel drivers or implementation of a minimal driver within U-Boot for the necessary controller (LCDIFv3 and DSI PHY).

Possible Approaches:

  1. Check U-Boot Upstream and BSP Updates:

    • Review the Toradex U-Boot documentation and the BSP release notes to see if newer BSP versions or upstream U-Boot branches have introduced relevant display support for Verdin iMX8MP.
    • Currently, MIPI DSI display support is not included out-of-the-box in U-Boot for this SoC.
  2. Porting or Implementing MIPI DSI Support:

    • Porting the needed drivers (imx_lcdifv3, sec_dsim_imx) from the Linux kernel to U-Boot is a non-trivial engineering task, as U-Boot’s driver model and power management are simpler and less complete than Linux.
    • You might take inspiration from how simple framebuffer and LCD drivers are implemented in U-Boot for other platforms, but expect to handle initialization of the MIPI DSI PHY, DSI controller, LCDIF, and your specific display panel’s initialization (via DSI commands).
  3. Alternative Approaches:

    • If your goal is primarily to show a splash/logo during early boot, consider using an intermediate display interface that is supported in U-Boot, if available on your hardware.
    • Otherwise, display output can be initialized as early as possible in the Linux kernel (for instance, using the kernel’s simple framebuffer or early KMS/DRM initialization).

Summary:
At this time, enabling MIPI DSI display output in U-Boot for the Verdin iMX8MP would require extensive driver development. Out-of-the-box support is not present in the current Toradex U-Boot BSP. You can monitor future Toradex BSP releases or upstream U-Boot mainline developments for updates.

Let me know if you’d like information on starting a custom driver implementation in U-Boot, or if you need details about early splash on Linux.

Best regards,
Toradex AI Assistant

Can confirm what the AI stated. With Torizon 7.0, Toradex has moved to upstream u-boot which is missing nearly all of the i.MX drivers and code required to support what you want. Certainly the lift on 6.x is less, because there the NXP fork of u-boot is being used, and NXP provides reference implementations for many of the SoC peripherals that serve as a starting point.

Even using the NXP fork, any effort is still going to require some work on your part; many DSI displays have proprietary initialization sequences, so unless your particular controller IC has an existing kernel or u-boot driver as a starting point, you will have to develop this yourself. And of course this solution would be entirely unsupported and you’d have to track and port any Toradex changes from upstream u-boot to the NXP fork yourself.

1 Like

hi @prathammalaviya did the response from the Toradex AI and from bw908 help?

Hi @carlos.tx , Yes both of their response helped.

Thanks.

1 Like