android 快速开机启动,MTK6577+Android之快速开机
MTK6577+Android之快速開機
今天測試了關機電流,就是長按power按鍵,彈出下圖:
圖1
選擇Power off(關機)后發(fā)現(xiàn)電流還有25mA,和短按進入掛起時電流一樣。但為什么關機是電流還有這么高了,而且在關機時電源指示燈還是亮的,那說明就沒有真正關機。此時我按下power按鍵,設備重新啟動,但很快就進入系統(tǒng)(大概9s),比正常的拔掉電池后開機的29s短了不少。
難道這就是快速開機(ipo: instant?power?on)嗎?MTK工程文件下
\mediatek\config\hsimobile77_ics2\projectconfig.mk
MTK_IPO_SUPPORT=yes
通過MTK_IPO_SUPPORT的設置來決定是否打開快速啟動,如果為yes表示打開,否則為no。
關機的時候最后會調(diào)用pm_power_off()來關機的,見
\mediatek\platform\mt6577\kernel\core\core.c文件相關代碼:
void __initmt6577_init(void)
{
unsigned int tmp;
pm_power_off = mt6577_power_off;
#ifdefined(CONFIG_CACHE_L2X0)
writel(L2X0_DYNAMIC_CLK_GATING_EN,PL310_BASE + L2X0_POWER_CTRL);
writel(readl(PL310_BASE +L2X0_PREFETCH_CTRL) | 0x40000000, PL310_BASE + L2X0_PREFETCH_CTRL);
/*L2C data ram access latency*/
tmp = readl(PL310_BASE +L2X0_DATA_LATENCY_CTRL);
tmp &= ~((0x7 << 4) | 0x7); //clear bit[6:4] and bit[2:0]
tmp |= ((0x2 << 4) | 0x1); //3T readaccess latency & 2T setup latency
writel(tmp, PL310_BASE +L2X0_DATA_LATENCY_CTRL);
l2x0_init((void __iomem *)PL310_BASE,0x70400000, 0x8FBFFFFF);
#endif /* CONFIG_CACHE_L2X0 */
#ifdefined(CONFIG_HAVE_ARM_SCU)
scu_enable((void *)SCU_BASE);
/* set INFRA_ACP to 0x00003333 forreceiving transactions to ACP */
writel(0x00003333, INFRA_SYS_CFG_BASE +0x0F04);
#endif /* CONFIG_HAVE_ARM_SCU */
}
可以看出實際是回調(diào)mt6577_power_off()來實現(xiàn)關機的,它的定義在
\mediatek\custom\hsimobile77_ics2\kernel\core\src\board.c下面:
voidmt6577_power_off(void)
{
printk("core--->mt6577_power_off()\n");
/* pull PWRBB low */
rtc_bbpu_power_down();
while (1) {
printk("mt6577_power_off :check charger\n");
if (pmic_chrdet_status() ==KAL_TRUE)
arch_reset(0,"charger");
}
}
通過拉低RTC的PWRBB引腳來關機,如果判斷有接入USB或是充電器,會進入關機充電流程。
關機充電時,拔出USB調(diào)用uboot的mt6577_power_off來實現(xiàn)關機的。
參考鏈接:
MTK 快速開機 技術詳解
深入解析Android關機
Android 長按電源鍵關機整個流程小學習
總結(jié)
以上是生活随笔為你收集整理的android 快速开机启动,MTK6577+Android之快速开机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 定了!2021考研时间
- 下一篇: MTK6577+Android之音频(a