面向高通平台的初始 U-Boot 版本

较早时期就有技术大佬研究,推出适用于高通主板的 U-Boot 第一个二进制版本。
印象里是基于 2024.10-rc2 版本,所有列出的平台均支持核心功能(EFI、从内部存储启动、从 USB 启动),部分主板有条件地支持 USB 小工具模式、SD 卡访问和以太网。此外,RB5 主板可以通过特殊的 U-Boot 构建替换原有的虚拟机管理程序映像,从而支持 KVM 启动。

本文将引导您完成二进制版本的刷新、从源代码构建,并希望提供一些有关 Qualcomm 的启动过程以及 U-Boot 如何融入 Qualcomm 生态系统的背景信息。

Linaro 继续其先前的努力,在机器人开发平台上提供统一的启动流程,并通过与高通的物联网团队合作,Linaro 工程师现在已经支持在 7 个平台上使用 U-Boot 进行 EFI 启动(并且还在不断增加!)。

假设您的发行版启用了正确的内核模块,您现在可以简单地启动闪存到 USB 记忆棒的映像,甚至将其安装到内部存储(但请注意不要擦除带有 eMMC 的设备上分区表,您必须使用自定义分区并且只触及 rootfs 和 ESP 分区!)。

安装方法
有 3 种方法可以在 Qualcomm 主板上安装 U-Boot: 将其刷入启动分区并从 ABL 进行链式加载 二进制修补 xbl 以用 U-Boot 替换 EDK2 映像 将其刷入 hyp 分区并在 EL2 中启动 Linux(使用 KVM)

哪个平台支持其中哪个以及哪个对您有意义取决于几个不同的因素(但请注意,这里提到的问题有望在将来得到改进):如果您选择选项 a,则安全启动目前只是很简单,因为可以使用 custom_avb_key。然而,这可能会改变,如果您对此感兴趣,请与我们联系。U-Boot 中的快速启动实现不符合高通的标准,它的速度较慢并且根本不支持 UFS 存储。这可能会使选项 b 和 c 变得没有吸引力,尽管您可能对 PXE 和 HTTP 支持作为替代方案感兴趣。KVM 支持是实验性的,并且会破坏 DSP(以及可能的其他东西)。目前,仅为 RB5 提供 KVM 二进制文件,因为它使用 PCIe WiFi 并且仅失去对音频和 NPU 的支持。

支持的平台
具体支持状态取决于设备。当前的集成分支不支持 SM8550/SM8650 上的 UFS。其他设备可以从内部存储或 USB 启动。

刷写 U-Boot
可以从https://git.codelinaro.org/linaro/qcomlt/u-boot/-/releases下载版本

所有方法的安装过程几乎相同。对于 boot、uefi 或 hyp 镜像,只需使用 fastboot 或 EDL 刷入相应的分区即可。对于 RB1/2/3/5 上的 xbl 镜像,您需要获取一个原版 xbl 分区镜像,并使用 patchxbl.py 和 qtestsign.py,具体操作步骤如下。

重要提示:如果您使用 XBL 或 Hyp 方法,您必须确信您可以通过 EDL 模式恢复您的主板,否则您可能会使其变砖。
fastboot flash PART u-boot-BOARD-PART.img

或者

edl --loader path/to/prog_firehose_ddr.elf w PART u-boot-BOARD-PART.xyz

从源代码构建
U-Boot 可从https://git.codelinaro.org/linaro/qcomlt/u-boot获取,并按如下方式编译。更多常规信息和依赖项,请参阅 U-Boot 文档。更多 Qualcomm 特定文档可在此处找到。链式加载时,您还需要 android-tools 来执行 mkbootimg 命令。

cd u-boot
git reset --hard QU-0.1.0 # check the latest tag, or use master
make CROSS_COMPILE=aarch64-linux-gnu- O=.output qcom_defconfig
make CROSS_COMPILE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值