1、mtk开机基本流程:
boot rom ————》preloader ————》lk ————》kernel ————》android
2、boot rom:
每个芯片有自己的boot rom,上电时启动,然后将preloader加载到内部sram中,因为此时外部ram还没有初始化,需要preloader去初始化
3、preloader:
vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src
init:init.S
汇编完成,主要四切换系统到SVC模式(超级用户模式),平台要是有实现EL3,preloader就运行在EL3,否则运行在EL1,还有负责禁止irq/fiq,设置stack等,然后会jump到C语言开始的main函数中
core:C开始的main.c中的main函数
完成各种硬件的基本初始化,如uart、timer、rtc、wdt、mem、pmic等
获取rtc记录的系统的启动模式,启动原因等,保存到全局变量bootargs中
security check,和安全相关
找到 lk加载到dram的地址(是一个固定的地址),从rom中找到lk分区的地址,
battery check,如果没有电池就一直while(1&#