由于异常关机问题可能存在多种可能性(异常重启,异常关机,hang机,掉电),请务必厘清复现过程和手法,保留问题现场,以下信息请在提case的时候一起提供:
1、确认是亮屏关机还是灭屏关机?关机时是否有播放关机动画?
如果有播放关机动画可以检查关机流程的调用是否有异常。
2、是直接关机还是关机后会自动重启?
可以检查log中是否有走ShutdownThread或者reboot流程,是否有对应的exception或db产生。
3、异常关机时,连上uart线是否可以吐log?插上usb后是否能显示关机充电动画?
如果可以吐log,可以通过log判断是hang机还是关机充电;若能正常显示关机充电动画可以确认之前的行为是关机而不是hang机。
4、如果按Powerkey可以重新开机,请注意按powerkey的时长是多少?
如果是关机,按Powerkey 2~4s即可重新开机;如果是Hang机,按Powerkey要8s以上才会强制掉电重启。
5、检查log中的Battery电压等信息,判断是否为低电或者电压波动异常大?
6、检查log中的Thermal信息,是否有电池温度或者板温过60度的情况?
7、如果是电池本身的过流/过压保护,异常关机后按Powerkey不能重启,必须要拔插电池才能恢复。
8、提供的log中请包括关机mobile log(最好能抓logcat和uart log),关机后再开机的mobile log(包括pl_lk log、kernel_log.boot、main_log.boot、last_kmsg、property、cmdline等信息),如果有exception信息请一并提供对应db文件。
9、如果以上方法都没看出任何异常,需要看PMIC记录的最后关机的原因。方法有2个,任选一个:
测试前接上USB和uart(保证可以看到preloader log),然后复现问题,复现后一定会在关机充电画面(异常掉电),测试看进入关机充电的preloader log,里面的PMIC reg log记录了上次关机原因。
O及以后版本会把上一次的preloader log保存到expdb。在测试复现问题后(全程不能按power key),插上usb,此时进入关机充电,短按power key 3s,正常开机,然后
执行如下命令:
adb shell dd if=/dev/block/platform/bootdevice/by-name/expdb of=/sdcard/expdb
adb pull /sdcard/expdb将导出的expdb,用NotePad++直接打开,看log
preloader PMIC reg log如下(具体含义看datasheet):
[PMIC]TOP_RST_STATUS[0x152]=0x4F
[PMIC]PONSTS[0xC]=0x4
[PMIC]POFFSTS[0xE]=0x80
[PMIC]PGSTATUS0[0x14]=0xFFFE
[PMIC]PSOCSTATUS[0x16]=0x0
[PMIC]BUCK_OC_SDN_STATUS[0x1434]=0x0
[PMIC]BUCK_OC_SDN_EN[0x1444]=0x31F
[PMIC]THERMALSTATUS[0x18]=0x0
[PMIC]STRUP_CON4[0xA1C]=0x0
[PMIC]TOP_RST_MISC[0x14C]=0x200
[PMIC]TOP_CLK_TRIM[0x38E]=0x6EC0
MTK 驱动---如何初步定位异常关机问题
于 2019-05-28 20:03:18 首次发布