概述
本页概述了 Qualcomm Linux (QLI) 软件中对 U-Boot(Universal Boot Loader,通用引导加载程序)的支持。支持的 SoC
构建 U-Boot 镜像
本节介绍如何在 QLI 软件中构建 U-Boot 二进制文件。1. 从 Qualcomm Linux GitHub 仓库构建
前提条件
在执行构建步骤之前,请完成以下操作:-
在本地计算机上安装以下软件包:
-
下载并解压 Arm GNU Toolchain:
- 这将在
~/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu/创建工具链目录。如果您将其解压到其他位置,请相应地调整构建命令中的路径。 - 仅在 x86 64 位主机计算机上安装该工具链。
- 有关其他版本,请访问 Arm GNU Toolchain Downloads。
- 这将在
-
下载 qtestsign 工具:
构建步骤
-
将 U-Boot 仓库从 Qualcomm Linux GitHub 下载到本地工作区,并进入
u-boot文件夹: -
切换分支:
-
检出 QLI 版本的 SRC REV:
-
为您的平台配置构建。此命令会在
.output目录中创建所需的配置文件。请根据您的平台选择相应的命令: -
使用交叉编译工具链构建 U-Boot:
预期结果:如果您将工具链解压到了其他位置,请将
~/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu/替换为您实际的工具链安装路径。- U-Boot 构建无错误完成。
u-boot.elf文件位于.output目录中。
将 u-boot.elf 转换为 u-boot.mbn
此命令生成刷写所需的已签名u-boot.mbn 文件:
如果您将 qtestsign 克隆到了其他位置,请将
~/qtestsign/ 替换为您实际的 qtestsign 安装路径。2. 使用 Yocto 构建
按照 Build Qualcomm Linux using Yocto 页面上的说明操作,并进行以下修改:- 要生成 U-Boot 二进制文件,请在”构建 BSP 镜像”第 3 步的构建命令中追加
:meta-qcom/ci/u-boot-qcom.ymlKAS 片段。 - 在构建产物文件夹中,最终的 U-Boot 二进制文件以
uefi.elf的形式生成在<workspace-dir>/build/tmp/deploy/images/<MACHINE>/<IMAGE>-<MACHINE>.rootfs.qcomflash/目录中。
刷写 U-Boot 镜像
使用 Qualcomm 工具
按照构建刷写说明,将 U-Boot 二进制文件与 QLI 构建一起刷写,如 Flash software images 中所述。使用 Fastboot
- 使用以下方法之一进入 fastboot 模式:
- 从内核:
- 从 U-Boot CLI:
- 从内核:
- 从主机刷写所需的镜像。例如,要刷写 U-Boot 镜像:
- 重启设备:
支持的 U-Boot 命令
下表列出了在支持的平台上可用的一些关键 U-Boot 命令。这些命令涵盖启动管理、环境管理、存储访问和硬件外设控制。可用命令可能因平台支持情况而异。- 在 QCS6490 中,Watchdog 由 Hypervisor 使用;因此,Watchdog 命令在 QCS6490 上不起作用。
UEFI 安全启动
U-Boot 支持 UEFI 安全启动,它在执行之前使用基于平台密钥 (PK)、密钥交换密钥 (KEK)、签名数据库 (db) 和禁止签名数据库 (dbx) 的信任链,验证 EFI 镜像(例如内核和引导加载程序)的真实性。 有关生成密钥、预置变量存储、签名 EFI 镜像以及在启用CONFIG_EFI_SECURE_BOOT 的情况下构建 U-Boot 的完整步骤,请参阅 U-Boot 文档中的 EFI Secure Boot。

