图:冷启动流程
- 复位后,启动核心退出复位(Reset)状态并执行 PBL。PBL 初始化硬件时钟、CPU 缓存、内存管理单元(MMU),并根据启动选项设置识别启动设备。
- PBL 从启动设备加载并验证 XBL。XBL 在 EL3 安全状态下运行安全设置,并执行以下任务:
- 初始化硬件、固件镜像、CPU 缓存、MMU、启动设备、PMIC 和 DDR。
- 从启动设备加载并验证 Qualcomm TEE 镜像。
- 加载并验证 Qualcomm Hypervisor 镜像。
- 加载并验证 EDK II/U-Boot 镜像。
- 发起安全通道管理器(SCM)调用以跳转到 Qualcomm TEE 镜像。SCM 是使用安全监视器调用(SMC)与 Qualcomm TEE 通信的驱动程序。
- Qualcomm TEE 建立安全环境并运行 Qualcomm Hypervisor 镜像。
- Qualcomm Hypervisor 将控制权移交给 EDK II/U-Boot,后者随后使用 UEFI 安全启动加载并验证 systemd-boot EFI 镜像。
- systemd-boot 镜像加载并验证 Qualcomm Linux 内核镜像,并将控制权传递给 Qualcomm Linux 内核。如果启用了基于内核的虚拟机(KVM)模式,UEFI 会关闭 Qualcomm Hypervisor,退出 UEFI 启动服务,并将控制权传递给 EL2 中的 Linux KVM。
- 在 U-Boot KVM 模式下,Qualcomm Hypervisor 在其执行开始时被关闭,并从 EL2 开始执行。要在 U-Boot 中启用 KVM 模式,请参阅 U-Boot 构建指南中的构建步骤。
- Qualcomm Linux 内核启动 Linux 应用程序,例如 bash shell。

