> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# APSS 冷启动流程

冷启动从断电状态启动系统。此过程从 PBL 开始。

下图显示了冷启动流程。

<div style={{ textAlign: 'center' }}>
  <img src="https://mintcdn.com/qualcomm-staging/uWQLnBcS9sxlZhgB/System/Boot/media/k2c-qli-boot/boot-arch.svg?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=d2ae7fdc91fb1476b1cff525d99d6a71" alt="冷启动流程" width="782" height="327" data-path="System/Boot/media/k2c-qli-boot/boot-arch.svg" />

  <p><strong>图：冷启动流程</strong></p>
</div>

冷启动过程在两种安全模式下运行：安全模式和非安全模式。在 EL0、EL1 和 EL2 [异常级别](https://developer.arm.com/documentation/102412/0103/Privilege-and-Exception-levels/Exception-levels)，启动核心可以在安全或非安全模式下运行，但在 EL3，它始终在安全模式下运行。Linux 内核在非安全 EL1 状态下运行。在安全 EL3 状态下完成安全设置后，XBL 可以切换到 EDK II/U-Boot 非安全 EL1 状态。

有关安全模式的更多信息，请参阅[软件安全架构](https://dragonwingdocs.qualcomm.com/System/Security/security-architecture)。

冷启动序列包括以下步骤：

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 是使用[安全监视器调用](https://developer.arm.com/documentation/ddi0333/latest/programmer-s-model/exceptions/secure-monitor-call--smc-)（SMC）与 Qualcomm TEE 通信的驱动程序。
3. Qualcomm TEE 设置安全环境并运行 Qualcomm Hypervisor 镜像。
4. Qualcomm Hypervisor 将控制权移交给 EDK II/U-Boot，后者随后使用 [UEFI 安全启动](https://dragonwingdocs.qualcomm.com/System/Security/enable-uefi-secure-boot)加载并验证 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。
