您的位置:首页 > 其它

MTK平台uart log 抓取及8 秒重启、开机震动功能总结

2016-11-24 15:11 225 查看
MTK平台串口log抓取

作为一名驱动工程师,有时候必须要抓取uart log来分析故障,查找及验证后,发现一下方法确认能够稳定及正常抓取MTK平台uart log。

1.preloader 中配置串口号
bootable/bootloader/preloader/custom/aus6753_65u_l1/cust_bldr.mak
如:
CFG_UART_LOG :=UART1
CFG_UART_META :=UART1
改为:(修改成需要的串口号码,并在PCB上将对应串口Tx引出)
CFG_UART_LOG :=UART3
CFG_UART_META :=UART3
2.lk中设置cmdline里不去关串口
bootable/bootloader/lk/app/mt_boot/mt_boot.c
int boot_linux_fdt(void *kernel, unsigned *tags,
char *cmdline, unsigned machtype,
void *ramdisk, unsigned ramdisk_size)
{ ......
#ifdef USER_BUILD
//sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1"); //默认是这句配置,关闭uart
sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0"); //default open uart log by zhangliang
#else
sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\"");
#endif
......
}

3.让kernel中到console后不去关闭串口log
kernel-3.10/kernel/printk.c
inline void mt_disable_uart(void)
{
if (mt_need_uart_console == 0) {
printk("<< printk console disable >>\n");
printk_disable_uart = 1; //0: uart log always on,改为0 即串口log常开
} else {
printk("<< printk console can't be disabled >>\n");
}
}


MTK 平台添加开机震动功能

在bootable\bootloader\lk\platform\mt6735\platform.c中的 platform_init()函数里面添加下面代码。 

                vibr_Enable_HW();

                mdelay(300);

                vibr_Disable_HW();          

开机能够振动。但关机后再开机不会振动,原因在于开启了快速开机(IPO)功能。     

解决方案:上层修改,将快速开机功能默认关闭,底层在LK中添加开机震动代码。

MTK 平台添加 8 秒重启功能

在main/kernel-3.10/drivers/misc/mediatek/mach/mt6735/len6753_66t_vo/keypad/mtk_kpd.h文件中,修成如下代码:

 //#define ONEKEY_REBOOT_NORMAL_MODE
//#define TWOKEY_REBOOT_NORMAL_MODE
#define ONEKEY_REBOOT_OTHER_MODE
//#define TWOKEY_REBOOT_OTHER_MODE
 /* KPD_PMIC_RSTKEY_MAP is defined in cust_kpd.h */
 #define KPD_PMIC_LPRST_TD 1 /* timeout period. 0: 8sec; 1: 11sec; 2: 14sec; 3: 5sec */

然后从新build load、先format,然后再download即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息