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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

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

跳至解决方案
1,455 次查看
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 项奖励
回复
1 解答
1,370 次查看
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.

在原帖中查看解决方案

5 回复数
1,391 次查看
Rita_Wang
NXP TechSupport
NXP TechSupport

The android Bootanimation will work normal with the boot up.

0 项奖励
回复
1,371 次查看
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,360 次查看
Rita_Wang
NXP TechSupport
NXP TechSupport
Thanks a lot for your kindly sharing. Wish you have a nice day
0 项奖励
回复
1,390 次查看
Rita_Wang
NXP TechSupport
NXP TechSupport

Could you tell us which version BSP are you using?

0 项奖励
回复
1,384 次查看
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 项奖励
回复