- Android system overview
- Bootloader--EDK2 UEFI boot
- Linux Kenel init flow
- Linux driver
1. Android 系统框架
1)应用程序层
2)应用程序框架层
3)系统运行库层
a)系统库
b)Android运行时
4)Linux内核层
Android 系统启动过程
Power on Sequence
- Power button is pressed and this launches the ROM code on the RPM
- SBL1 code runs on RPM processor
- Bootloader on main apps processor runs (LK or EDK2 UEFI boot)
- Apps bootloader launches the HLOS (Android)
- Initial startup code on HLOS launches other processors: Riva (wifi), DSPs, etc.
2. Bootloader--EDK2 UEFI boot
2.1 UEFI boot flow-Sec阶段
SEC(Security Phase)阶段是平台初始化的第一个阶段,计算机系统加电后进入这个阶段。
1)接收并处理系统启动和重启信号
2)初始化临时存储区域
3)作为可信系统的根
4)传递系统参数给下一阶段(即PEI)
代码路径:
EDK2/ArmPlatformPkg/Sec/Arm/SecEntryPoint.S JMPT to Sec C code( CEntryPoint)
EDK2/ArmPlatformPkg/Sec/Sec.c (CEntryPoint)
EDK2/CoreBootModulePkg/SecC