此添加方法,通过重启命令的参数修改RTC模块的的一个端口的一位寄存器,待重新启动后通过读取改为的值来选择进入normal模式还是factory模式。
(1)mediatek/platform/mt6582/kernel/core/include/mach/mt_rtc_hw.h文件修改:
添加代码:
#define RTC_PDN1_FACTORY (1U<<5) //将RTC_PDN1口的第五位设置成命令标志位
(2)mediatek/kernel/kernel/system.c文件修改:
在函数void arch_reset(char mode, const char *cmd)的定义内添加:
if(cmd && !strcmp(cmd,"factory")){
rtc_mark_factory();
} //cmd即adb reboot 后面的参数,当参数为factory时,通过rtc_mark_factory()修改命令标志位。
(3)mediatek/kernel/include/mach/mtk_rtc.h文件修改:
添加代码:
extern void rtc_mark_factory(void);
(4)mediatek/kernel/drivers/rtc/mtk_rtc_common.c文件修改:
添加代码:
vodi rtc_mark_factory(void)