> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.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-prod/eYaEBFH0xlFq53OY/System/Boot/media/k2c-qli-boot/boot-arch.svg?fit=max&auto=format&n=eYaEBFH0xlFq53OY&q=85&s=38a746d8eae1af6526cf9e3261bcbefc" alt="冷启动流程" width="782" height="327" data-path="System/Boot/media/k2c-qli-boot/boot-arch.svg" />

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

冷启动过程在两种安全模式下运行：安全（Secure）模式和非安全（Nonsecure）模式。在 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. 复位后，启动核心退出复位（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 是使用[安全监视器调用](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 开始执行。要在 U-Boot 中启用 KVM 模式，请参阅 U-Boot 构建指南中的[构建步骤](./u-boot-on-qualcomm-linux#build-steps)。
6. Qualcomm Linux 内核启动 Linux 应用程序，例如 bash shell。
