如何debug preloader bootup time 问题以及开机过程中preloader慢抓取 preload模块开机log

版权声明:转载请注明博客地址 https://blog.csdn.net/jinron10/article/details/86647749

[DESCRIPTION]
有时候bootup过程中,会出现preloader启动时间过程的问题。此FAQ帮助你如何去debug这个阶段的perfoamnce问题。
建议测试时一定要用user load来测试,以免debug因素造成的影响。

[SOLUTION]
(1)preloader阶段
在bootable/bootloader/preloader/platform/mt6735/makefile.mak中
# make unmark for PL booting time profiling
#C_OPTION += -DPL_PROFILING 将此处的# 拿掉
(2)LK阶段
在bootable/bootloader/lk/target/$ProjectName/rules.mk中将LK_PROFILING := yes
注意,要确保bootable/bootloader/lk/project/$ProjectName.mk中DEBUG := 2
抓到的LOG就会有每个阶段所用的时间。 单位为ms. 再根据每个阶段做优化。
[24/09/15 - 14:34:29:123] #T#PLL=1
[24/09/15 - 14:34:29:123] #T#GPIO=0
[24/09/15 - 14:34:29:467] #T#PWRAP=26
[24/09/15 - 14:34:29:467] #T#I2C=0
[24/09/15 - 14:34:29:825] #T#chk DDR Reserve status=91
[24/09/15 - 14:34:30:824] #T#check Boot status-RTC=1069 (如果直接掉电关时间会比较长)
[24/09/15 - 14:34:30:824] #T#check Boot status-WDT=0
[24/09/15 - 14:34:30:839] #T#check Boot status=1
[24/09/15 - 14:34:30:855] #T#rtc_bbpu_power_on=0
[24/09/15 - 14:34:30:855] #T#Enable PMIC Kpd clk=0
[24/09/15 - 14:34:31:042] #T#mem_init=207 (这部分eng启动时间会很长,是因为会印很多LOG出来)
[24/09/15 - 14:34:31:105] #T#Init Dram buf=3
[24/09/15 - 14:34:31:120] #T#Ram console=2
[24/09/15 - 14:34:31:136] #T#Boot dev init=0
[24/09/15 - 14:34:31:136] #T#Part Init=81
[24/09/15 - 14:34:31:167] #T#Sec lib init=9
[24/09/15 - 14:34:31:167] €€€€
[24/09/15 - 14:34:31:557] #T#before bldr_handshake=0
[24/09/15 - 14:34:31:557] #T#seclib_brom_meta_mode=0
[24/09/15 - 14:34:31:604] #T#USB handshake=410
[24/09/15 - 14:34:31:635] #T#UART handshake=15
[24/09/15 - 14:34:31:635] #T#bldr_handshake=0
[24/09/15 - 14:34:31:666] #T#sec_boot_check=3
[24/09/15 - 14:34:31:775] #T#Battery detect=55
[24/09/15 - 14:34:31:775] #T#MTJTAG switch=0
[24/09/15 - 14:34:31:775] #T#MTMETA Detect=0
[24/09/15 - 14:34:31:853] #T#Boot Argu=15


开机过程中preloader慢抓取preload模块开机log
[DESCRIPTION]
在开机过程中, 会出现preloader慢的问题, 由于preloader本身不把时间信息印出来, 需要把相关marco打开才能够看到每个阶段的耗时情况.

[SOLUTION]
对于KK版本,请修改以下文件:
mediatek/platform/mt6xxx/preloader/src/drivers/inc/platform.h 会看到以下宏包着的内容:
#ifdefined (PL_PROFILING)
下面会有印出print 的信息,
。。。。。。
请将此开关拿掉,方式如下:修改mediatek/platform/mt6xxx/preloader/makefile.mak
找到
# make unmark for PL booting time profiling
#C_OPTION += -DPL_PROFILING 将此处的 # 拿掉

对L版本,需要修改的点:
修改alps/bootable/bootloader/preloader/platform/mt6xxx/src/drivers/inc 里面platform.h 下上述的定义:
alps/bootable/bootloader/preloader/platform/mt6xxx, 找到# make unmark for PL booting time profiling
#C_OPTION += -DPL_PROFILING 将此处的# 拿掉

函数print 的内容: 被 #if define(TARET_BUILD_VARIANT_ENG) 包住了,user 版本默认此print 函数打印出的是空信息
需要将TARGET_BUILD_VARIANT_ENG去掉,才可以在user 版本print 出相关的内容

猜你喜欢

转载自blog.csdn.net/jinron10/article/details/86647749