Skip to main content
冷启动从断电状态启动系统。此过程从 PBL 开始。 下图显示了冷启动流程。
冷启动流程

图:冷启动流程

冷启动过程在两种安全模式下运行:安全模式和非安全模式。在 EL0、EL1 和 EL2 异常级别,启动核心可以在安全或非安全模式下运行,但在 EL3,它始终在安全模式下运行。Linux 内核在非安全 EL1 状态下运行。在安全 EL3 状态下完成安全设置后,XBL 可以切换到 EDK II/U-Boot 非安全 EL1 状态。 有关安全模式的更多信息,请参阅软件安全架构。 冷启动序列包括以下步骤:
  1. 复位后,启动核心退出复位状态并执行 PBL。PBL 初始化硬件时钟、CPU 缓存、内存管理单元(MMU),并根据启动选项设置识别启动设备。
  2. PBL 从启动设备加载并验证 XBL。XBL 在 EL3 安全状态下运行安全设置,并执行以下任务:
    1. 初始化硬件、固件镜像、CPU 缓存、MMU、启动设备、PMIC 和 DDR。
    2. 从启动设备加载并验证 Qualcomm TEE 镜像。
    3. 加载并验证 Qualcomm Hypervisor 镜像。
    4. 加载并验证 EDK II/U-Boot 镜像。
    5. 发起安全通道管理器(SCM)调用以跳转到 Qualcomm TEE 镜像。SCM 是使用安全监视器调用(SMC)与 Qualcomm TEE 通信的驱动程序。
  3. Qualcomm TEE 设置安全环境并运行 Qualcomm Hypervisor 镜像。
  4. Qualcomm Hypervisor 将控制权移交给 EDK II/U-Boot,后者随后使用 UEFI 安全启动加载并验证 systemd-boot EFI 镜像。
  5. systemd-boot 镜像加载并验证 Qualcomm Linux 内核镜像,并将控制权传递给 Qualcomm Linux 内核。如果启用基于内核的虚拟机(KVM)模式,UEFI 会关闭 Qualcomm Hypervisor,退出 UEFI 启动服务,并将控制权传递给 EL2 中的 Linux KVM。
    • 在 U-Boot KVM 模式下,Qualcomm Hypervisor 在其执行开始时被关闭,并且它开始在 EL2 执行。
  6. Qualcomm Linux 内核启动 Linux 应用程序,例如 bash shell。