How to show the boot logo using DRM/KMS on Android12?

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

How to show the boot logo using DRM/KMS on Android12?

Jump to solution
111 Views
herman_lin
Contributor II

Hi NXP,

Our current development project is based on the i.MX8MQ platform using the i.MX-Android-12.1.0_1.0.0 codebase. This codebase utilizes the DRM/KMS display management framework instead of the traditional framebuffer. Previously, under the framebuffer architecture, the kernel boot process would display the penguin logo. However, with the DRM/KMS framework, the penguin logo is not displayed during boot. How can we display the boot logo under the DRM/KMS framework?

Thanks!

0 Kudos
Reply
1 Solution
24 Views
pengyong_zhang
NXP Employee
NXP Employee

HI, @herman_lin 

Synced with Android team, due to google GKI (Generic Kernel Image) requirement, the drm display driver is bullt as module, so kernel LOGO can't be used, the kernel logo code runs earlier than display driver, so it can't work.

After enabled logo in Uboot, to make it work with long time, you can remove the "video_link_shut_down();" from file "uboot\arch\arm\lib\bootm.c", function announce_and_cleanup().

you can also add "clk_ignore_unused" into kernel command line to avoid kernel turn off display related clocks during boot up. And you can also set Uboot framebuffer memory as resvereved in kernel device tree to avoid kernel clear the Uboot logo memory.

View solution in original post

0 Kudos
Reply
3 Replies
25 Views
pengyong_zhang
NXP Employee
NXP Employee

HI, @herman_lin 

Synced with Android team, due to google GKI (Generic Kernel Image) requirement, the drm display driver is bullt as module, so kernel LOGO can't be used, the kernel logo code runs earlier than display driver, so it can't work.

After enabled logo in Uboot, to make it work with long time, you can remove the "video_link_shut_down();" from file "uboot\arch\arm\lib\bootm.c", function announce_and_cleanup().

you can also add "clk_ignore_unused" into kernel command line to avoid kernel turn off display related clocks during boot up. And you can also set Uboot framebuffer memory as resvereved in kernel device tree to avoid kernel clear the Uboot logo memory.

0 Kudos
Reply
65 Views
pengyong_zhang
NXP Employee
NXP Employee

hi @herman_lin 

You can reference to the Linux kernel config file "imx_v8_defconfig" to includes the kernel LOGO related config:

CONFIG_FB=y
CONFIG_FB_EFI=y
CONFIG_LOGO=y

If you still got the kernel crash, please attach the crash log.

0 Kudos
Reply
37 Views
herman_lin
Contributor II

Hi pengyong,

Thanks for your reply.

After set following configs, the device will repeatedly reboot in the kernel, the log as attachment. The logs only show that the device is being triggered to reboot, but the reason is unknown. If additional logs are needed, please let us know which ones to enable. Thanks!!

CONFIG_FB=y
CONFIG_FB_EFI=y
CONFIG_LOGO=y

Best Regards,

Herman

0 Kudos
Reply