Preloader Overview
- boot loader 被 boot ROM 引导加载 。
- 加载和执行以下软件所需的硬件初始化和环境准备。
- Timer, PLL, UART, GPIO, PMIC wrapper, I2C, PMIC
- Mem/Storage init, memory self-test.
- 引导原因检测
- 检查设备开机原因(RTC,WDT,电源键,USB),然后检查是否锁定了BB电源。
- 引导模式检测
- 检查工具(Flash Tool,Meta Tool,Factory Tool)请求启动的模式。
- 通知以下软件进入相应的启动模式(Normal,Meta,Factory)。
- boot loader 检查和加载
- 检查 LK 并将其从存储设备(NAND / eMMC)加载到 RAM。
- 当 preloader 工作完成后跳转到 LK。
preloader 到 lk 时序图(mt6580 为例)
LK OverView
- 初始化硬件模块,比如时钟,中断,UART,USB,LCD,PMIC,eMMC等。打开 MMU,使能 I/D-cache,加速 lk 执行,显示 logo、充电相关。
- 从 emmc 的 boot 分区取出 boot.img 解压,将根文件系统(ramdisk)、zImage 加载到 DRAM;
- 解析 dtb,写入到 DRAM 指定区域;
- 关闭 MMU、irq/fiq,关闭 I/D-cache, 拉起 kernel;
LK 到 Kernel 时序图