[IMX8QM-MEK] Bootanimation is not shown for imx8qm-mek board

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

[IMX8QM-MEK] Bootanimation is not shown for imx8qm-mek board

Jump to solution
1,407 Views
Jose1985
Contributor IV

Hello,

I was trying to check the boot animation for imx8qm-mek board. I observed that startup animation was never shown in mek board. I tries investigation a bit.

1. While booting there is no boot animation shown or it is killed so quickly.

09-05 11:05:39.051 3084 3084 D BootAnimation: BootAnimationStartTiming start time: 1009733ms
09-05 11:05:39.051 3084 3084 D BootAnimation: BootAnimationPreloadTiming start time: 1009733ms
09-05 11:05:39.053 3084 3084 D BootAnimation: BootAnimationPreloadStopTiming start time: 1009736ms

It seems animation is exiting way too fast

$ adb shell ls /system/media/bootanimation.zip
/system/media/bootanimation.zip

$ adb shell bootanimation ==> If manually run this command, bootup animation is shown.

Do you know why then boot up animation is not shown when the device is cold/hard booted?

 

0 Kudos
Reply
1 Solution
1,322 Views
Jose1985
Contributor IV

Dear @Rita_Wang 

Boot animation is by default disabled in mek8q_car. The details are shared below.

To make this work need  to report to m4 that boot is completed and then inset display and camera drivers. So if you want to see boot animation, please make a way to insert the drivers before boot animation starts.

 

[Root cause]

m4 core holds the display & camera resource until Android boot complete is reported.

This is to enable and show EVS by freeRTOS running in M4 to enable and show EVS within 2 sec.

So, technically, M4 must drive bootanimation on display#0 and not android.

 

[Code]

init_car_m4.rc

  1 on property:vendor.vehicle.register=1
  2     start boot_completed_core_sh
  3
  4 on property:vendor.all.system_server.ready=1
  5     # register the vehicle_rpmsg_m4 on raw android.
  6     write /sys/devices/platform/vehicle_rpmsg_m4/register 1
  7     # register the vehicle_rpmsg_m4 on android running in xen.
  8     write /sys/devices/platform/passthrough/passthrough\:vehicle_rpmsg_m4/register  1

10 on early-init
11    setprop vendor.all.system_server.ready 0
12
13 on property:sys.boot_completed=1 && property:vendor.all.system_server.ready=0
14     # register the vehicle_rpmsg_m4 on raw android.
15     write /sys/devices/platform/vehicle_rpmsg_m4/register 1
16     # register the vehicle_rpmsg_m4 on android running in xen.
17     write /sys/devices/platform/passthrough/passthrough\:vehicle_rpmsg_m4/register  1

 

When android writes vehicle_rpmsg_m4/register to 1, the M core releases display #0 for Android.

After that, boot_completed_core_sh will probe for display & camera drivers at Android side.

View solution in original post

5 Replies
1,343 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

The android Bootanimation will work normal with the boot up.

0 Kudos
Reply
1,323 Views
Jose1985
Contributor IV

Dear @Rita_Wang 

Boot animation is by default disabled in mek8q_car. The details are shared below.

To make this work need  to report to m4 that boot is completed and then inset display and camera drivers. So if you want to see boot animation, please make a way to insert the drivers before boot animation starts.

 

[Root cause]

m4 core holds the display & camera resource until Android boot complete is reported.

This is to enable and show EVS by freeRTOS running in M4 to enable and show EVS within 2 sec.

So, technically, M4 must drive bootanimation on display#0 and not android.

 

[Code]

init_car_m4.rc

  1 on property:vendor.vehicle.register=1
  2     start boot_completed_core_sh
  3
  4 on property:vendor.all.system_server.ready=1
  5     # register the vehicle_rpmsg_m4 on raw android.
  6     write /sys/devices/platform/vehicle_rpmsg_m4/register 1
  7     # register the vehicle_rpmsg_m4 on android running in xen.
  8     write /sys/devices/platform/passthrough/passthrough\:vehicle_rpmsg_m4/register  1

10 on early-init
11    setprop vendor.all.system_server.ready 0
12
13 on property:sys.boot_completed=1 && property:vendor.all.system_server.ready=0
14     # register the vehicle_rpmsg_m4 on raw android.
15     write /sys/devices/platform/vehicle_rpmsg_m4/register 1
16     # register the vehicle_rpmsg_m4 on android running in xen.
17     write /sys/devices/platform/passthrough/passthrough\:vehicle_rpmsg_m4/register  1

 

When android writes vehicle_rpmsg_m4/register to 1, the M core releases display #0 for Android.

After that, boot_completed_core_sh will probe for display & camera drivers at Android side.

1,312 Views
Rita_Wang
NXP TechSupport
NXP TechSupport
Thanks a lot for your kindly sharing. Wish you have a nice day
0 Kudos
Reply
1,342 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Could you tell us which version BSP are you using?

0 Kudos
Reply
1,336 Views
Jose1985
Contributor IV

I am not sure of the BSP version. However, my android lunch command is below

TARGET_PRODUCT=mek_8q_car
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a

From android perspective, boot animation is working. I confirmed from logs. However, my display is not turned ON until boot animation is complete and android UI is up. Basically, HDMI clock is not set. Hence, even though android is drawing the boot animation, the display is not ON. 

I assume that the M4 core is holding the display resources until some point by which android boot animation is finished. 

I am looking for a way to disable resource holding by m4 core just in case my assumption is right

0 Kudos
Reply