Skip to main content

概述

本页概述了 Qualcomm Linux (QLI) 软件中对 U-Boot(Universal Boot Loader,通用引导加载程序)的支持。

支持的 SoC

构建 U-Boot 镜像

本节介绍如何在 QLI 软件中构建 U-Boot 二进制文件。

1. 从 Qualcomm Linux GitHub 仓库构建

前提条件

在执行构建步骤之前,请完成以下操作:
  1. 在本地计算机上安装以下软件包:
  2. 下载并解压 Arm GNU Toolchain:
    • 这将在 ~/arm-gnu-toolchain-14.2.rel1-x86_64-aarch64-none-linux-gnu/ 创建工具链目录。如果您将其解压到其他位置,请相应地调整构建命令中的路径。
    • 仅在 x86 64 位主机计算机上安装该工具链。
    • 有关其他版本,请访问 Arm GNU Toolchain Downloads。
  3. 下载 qtestsign 工具:

构建步骤

  1. 将 U-Boot 仓库从 Qualcomm Linux GitHub 下载到本地工作区,并进入 u-boot 文件夹:
  2. 切换分支:
  3. 检出 QLI 版本的 SRC REV:
  4. 为您的平台配置构建。此命令会在 .output 目录中创建所需的配置文件。请根据您的平台选择相应的命令:
  5. 使用交叉编译工具链构建 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.yml KAS 片段。
  • 在构建产物文件夹中,最终的 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

  1. 使用以下方法之一进入 fastboot 模式:
    • 从内核:
    • 从 U-Boot CLI:
  2. 从主机刷写所需的镜像。例如,要刷写 U-Boot 镜像:
  3. 重启设备:

支持的 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。

另请参阅