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

图:冷启动流程

冷启动过程在两种安全模式下运行:安全(Secure)模式和非安全(Nonsecure)模式。在 EL0、EL1 和 EL2 异常级别,启动核心可以在安全或非安全模式下运行,但在 EL3 级别,它始终以安全模式运行。Linux 内核运行在非安全 EL1 状态。在安全 EL3 状态下完成安全设置后,XBL 可以切换到 EDK II/U-Boot 非安全 EL1 状态。 有关安全模式的更多信息,请参阅软件安全架构 冷启动序列包含以下步骤:
  1. 复位后,启动核心退出复位(Reset)状态并执行 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 开始执行。要在 U-Boot 中启用 KVM 模式,请参阅 U-Boot 构建指南中的构建步骤
  6. Qualcomm Linux 内核启动 Linux 应用程序,例如 bash shell。