Porting the MIPI DSI panel driver to Uboot on iMX8M Mini

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

Porting the MIPI DSI panel driver to Uboot on iMX8M Mini

3,539 Views
kailas_kharse
Contributor IV
Hello,
 
We have our customized ST7703 panel, which we have successfully ported at the kernel layer with VAR-DART-MX8MM and the same is working fine. As we want to enable the splash screen, we tried to port the same driver at the uboot layer, based on the rm67191 reference panel driver.
Our LCD is connected directly to the MIPI DSI interface. Post porting, we are able to see that the probe and initialization of panel is going correct, logs as attached. But the MIPI clock and lcdif clock registers are not getting set.
We strongly feel that there is some issue with the clock settings at the uboot level. Following are the differences of the register values at the kernel and uboot level.
 
 
RegisterRegister addrKernel LayerUboot Layer
LCDIF_CTRL10x100x30721000x70100
LCDIF_CUR_BUF0x400x0 to 0x781000000xbf000000
LCDIF_NEXT_BUF0x500x781000000xbf000000
LCDIF_VDCTRL00x700x103000030x11300003
 
 
As mentioned above these are the value dumps between the kernel layer and uboot layer. And as communicated on the portal, without changing these registers variscite is able to use the RM67191 panel, then why do we need to change these register settings. We have tried your following commit id:
 
And we are using the uboot version: imx_v2020.04_5.4.24_2.1.0_var02
 
Thanks,
Kailas
Tags (1)
0 Kudos
7 Replies

3,445 Views
sd05
Contributor III

Hello @jamesbone 

I have a similar requirement as @kailas_kharse but i don't want to display the splash screen at early stage.

I am having a DART-IMX8MM based customboard.

I want to display the bmp images after we get uboot CLI prompt using bmp display.

I have managed to initialise panel and all the register values are set to proper everything goes alright still I am not able to get display.

There is no doubt on init sequence as it is working in kernel. 

Using all pixel on command of ST7703 we are able to get the all pixel on. Still what we write on frame buffer is not updated on panel and bmp command is also not working.

Getting something like this in logs on giving bmp display.

u-boot=> bmp d $splashimage
video_bmp_display() hdr_size=40, bmp_bpix=24
video_bmp_display() Display-bmp: 800 x 480 with 16777216 colours, display 1

please guide what is getting wrong.

Need  urgent help on this. 

Thanks in advance!

0 Kudos

2,622 Views
Hardevsinh_Palaniya
Contributor III

Hi @sd05 and @kailas_kharse  ,
I am facing the same issue in u-boot on iMX8M mini while display is working in kernel.

Have you resolved the issue?
Can you share how to ON all pixel?

Are you able to bring-up the display in u-boot?

 

Appreciate any help.

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
0 Kudos

2,538 Views
kailas_kharse
Contributor IV

Additional pending parches as limits were reached.

Patch P1.patch to P5.patch in a previous thread.
P6.patch to P7.patch is attached here.

I hope this will help you.

 

Regards,
Kailas Kharse

0 Kudos

2,539 Views
kailas_kharse
Contributor IV
Hello,
 
 
 
 I was able to resolve the issue and able to display the splash image on the boot screen in u-boot.
There are many changes that need to do as there is no support for MIPI in U-boot.

I am attaching the patches which will help you to resolve your issue, follow patches in sequence.
 
 
 
 
 
 
 
0 Kudos

2,382 Views
Hardevsinh_Palaniya
Contributor III

Hi @kailas_kharse ,

Thanks a lot for providing patches , appreciate this help.

 

I have tried these patches in my system however no luck, nothing gets displayed in u-boot,

Can you help address below questions,

 

  1. I could see some hard-coded numbers like in pixel clock etc, so will they work on any display or its specific to your panel only.

  2. If they are hard-coded as per your panel, can you suggest or guide what are the changes I should make in patches ?

  3. Still in my case it not working in u-boot but is working in kernel so any debug suggestions ? currently the issue is raydium panel so I am uncertain about the DSI support in u-boot.

  4. Even after running raydium panel's working support , any way to know that DSI support is enabled or not ?

Any help would be greatly appreciable.

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
0 Kudos

2,094 Views
kailas_kharse
Contributor IV

Hello,

Sending the final patches that we integrated into our product.

Apply in sequence from 01 to 05. patch.

0 Kudos

3,520 Views
jamesbone
NXP TechSupport
NXP TechSupport

i.MX8MM, the SPL / DDR calibration is taking time before the U-Boot splash screen is displayed. The DDR frequency is so high that DDR calibration must be done before U-Boot, or system may cannot boot normally.  If you want to config splash screen from SRAM before DDR is configured, you have to initalize display controller (CONFIG_VIDEO and  CONFIG_IMX_SEC_MIPI_DSI) and show logo (CONFIG_VIDEO_LOGO) in SPL stage, which I think is almost impossible.

 

0 Kudos