Continuous Display from U-Boot to Weston on i.MX8MP LVDS and MIPI-DSI Interfaces

Introduction

We often receive inquiries from customers regarding display issues, particularly about the continuous display between U-Boot and the Kernel. In the pre-compiled versions of U-Boot and Kernel images, we can see the NXP logo on the configured display during the U-Boot phase. Once U-Boot finishes and enters the Kernel, various modules will shut down, and the screen will turn blank until the Kernel completes the initialization of the relevant modules. The penguin logo, representing the kernel count, will then appear on the screen, followed by the launch of Weston. This article will introduce the method and debugging approach to keep the NXP logo displayed until Weston starts.
Supported SoC and BSP Version Information
  • i.MX8MP + LVDS/MIPI-DSI + LF5.15.71

Notice: The adaptations mentioned in this article are based on tests and demonstrations using LVDS (BOE EV121WXM-N10-1850) and MIPI-DSI (MX8-DSI-OLED1). Further adaptations will be required for customers using displays from different manufacturers and models.

Demo Videos Based on i.MX8MP+LVDS

  • i.MX 8MP EVK

  • LVDS Screen: LVDS BOE EV121WXM-N10-1850

  • LVDS Interface Adapter: XMX-LVDS-MINISAS Adapter

Demo Videos Based on i.MX8MP+MIPI-DSI

  • i.MX 8MP EVK

  • MIPI Screen:MX8-DSI-OLED1 (RM67191)

Notice: A new version of MIPI-DSI screens (RM67199, MX8-DSI-OLED1A) can also be used with the EVK. However, since it is a Smart Panel (with built-in RAM), it can maintain the display of the last frame even when data signals stop transmitting. Based on this feature, if customers choose to use a Smart Panel, we only need to ensure that the EN signal is not pulled low (and the PWM signal under backlight conditions is not pulled low) to achieve continuous display.

Relevant Modules and Modification Approach

U-Boot

  1. Enable the LVDS (MIPI-DSI) screen we intend to use in U-Boot, ensuring that the NXP logo displays correctly.

    Notice: The default version BSP does not support PWM during the U-Boot phase. If the screen used by the customer requires PWM, relevant drivers need to be added and enabled.

  2. Ensure that the relevant modules are not turned off at the end of U-Boot. Let the system pause at the end of U-Boot during the startup process. Check the display of the NXP logo to ensure that the modifications to the U-Boot part are correct and complete.

  3. Determine the frame buffer address used by LCDIF in U-Boot. This address will be set as reserved memory in the subsequent Kernel modifications to ensure it is not cleared or modified.

Kernel

  1. Modify the driver and DTB in the Kernel to enable the LVDS (MIPI-DSI) screen we intend to use and ensure proper display during the startup process and Weston phase.

  2. Set the U-Boot and Kernel startup processes to use the same frame buffer for display output and ensure it is not cleared or modified.

  3. Ensure that the power supply connected to the LVDS (MIPI-DSI) screen can continuously supply power.

  4. Ensure that the EN signal is not pulled low during the Kernel startup process. If the screen also introduces backlight, we need to ensure that the PWM signal is not pulled low during startup.

  5. Modify the driver for the display-related modules. We hope to continue enabling the modules as in U-Boot, ensuring that there are no hardware operations on the display module during the Kernel startup that cause screen flickering.

  6. Ensure that all the above modifications do not affect the normal startup and display of Weston.

Conclusion

This article introduced the configuration approach and demo videos for continuous display during the U-Boot and Kernel startup phases. For any questions regarding this article, please feel free to send a private message or leave a comment.
For more detailed modification suggestions and patches regarding U-Boot and Kernel, please contact us via company email at [email protected].

Leave a Comment

×