ARM64 架构的启动流程是一个多阶段、分层次的过程,涉及硬件初始化、权限切换、代码加载和操作系统启动。以下是其核心流程的详细说明:
1. 硬件上电与 BootROM 执行
-
复位向量(Reset Vector)
CPU 上电后,从固定地址(通常为0x00000000或厂商定义的地址)开始执行 BootROM 代码。- BootROM 是芯片内部只读固件,负责最底层硬件初始化(如时钟、内存控制器、安全引擎)。
- 验证下一阶段代码(如 Bootloader)的数字签名(Secure Boot)。
-
异常级别(Exception Level, EL)
ARM64 启动时运行在最高特权模式:- EL3(Secure Monitor):负责安全世界(Secure World)与非安全世界(Normal World)的切换。
- EL2(Hypervisor):可选,支持虚拟化。
- EL1(OS Kernel):操作系统内核运行级别。
- EL0(User Space):用户应用程序。
2. 加载并执行 Bootloader
阶段 1:Primary Bootloader(如 ARM Trusted Firmware, ATF)
-
任务:
- 初始化关键外设(如 UART 调试串口、DRAM 控制器)。
- 设置异常向量表(Exception Vector Table)。
- 加载下一阶段 Bootloader(如 U-Boot)到内存。
- 切换异常级别(从 EL3 → EL2 或 EL1)。
-
示例代码(ATF 跳转):
bl31_main(


8338

被折叠的 条评论
为什么被折叠?



