综述
最近在做传音项目(MT6735平台),Boss说了以下问题
[Current status]
关机状态下,长按开机键开机,5s的时候机器震动,6s时机器亮屏,显示lk的logo,这个时间过长了,需要优化
[Expected result]
正常开机时2-3s即可看到lk阶段的logo界面。
经过测试,发现MT6735平台,7.0或者8.0都存在此问题!
问题原因
我们在抓开机串口log的时候,发现
(181017_21:16:23.374)hwcrypto_unittest: 358: WELCOME TO HWRNG UNITTEST!
(181017_21:16:23.374)hwcrypto_unittest: 269: run_hwrng_show_data_test:
(181017_21:16:23.374)Dumping first hwrng request:
(181017_21:16:23.374)0x5f 0x6c 0xf9 0xde 0xec 0x86 0xbc 0xe1
0x60 0xac 0x39 0x50 0xae 0x73 0xc8 0x95
(181017_21:16:23.374)hwcrypto_unittest: 277: run_hwrng_show_data_test: PASSED
(181017_21:16:23.374)hwcrypto_unittest: 286: run_hwrng_var_rng_req_test:
(181017_21:16:23.637)INIT: cpu 0,
calling hook 0x9000067d (platform_disable_uart) at level 0xffffffff, flags 0x1
//执行到这段log时,会卡2-3秒钟,才进入lk,震动,显示lk开机logo。
(181017_21:16:25.774)Current RTC time:[2010/1/1 0:0:4]
(181017_21:16:25.774)[14] kernel_boot_opt=3
(181017_21:16:25.774)[14] 32Bit Kernel
问题的原因
实际上,是trusty 造成的開機延遲,Trusty 是一组在移动设备上支持可信执行环境 (TEE) 的软件组件,在开机的过程中做了hwcrypto-unittest(单元测试),会造成2s的延迟。
解决办法
trusty task 中有一項hwcrypto-unittest 約有二秒的延遲, 此測試影響開機可以將其移除.
trusty/vendor/mediatek/proprietary/project/mt6580.mk or {project}.mk
TRUSTY_ALL_USER_TASKS := \
sample/ipc-unittest/main \
sample/ipc-unittest/srv \
#sample/hwcrypto-unittest \
app/gatekeeper \
app/keymaster \
app/storage \
source/trusty-app/kmsetkey \
移除注释掉 sampel/hwcrypto-unittest,不运行在开机时做该单元测试,去除不会造成什么影响。