参考网站
-
ATF (arm-trusted-firmware),可以称之为 Trusted Firmware-A (TF-A),也就是 TF-A
-
https://www.trustedfirmware.org/
-
https://github.com/ARM-software/arm-trusted-firmware
环境
-
使用 qemu,就是不需要板子
-
win10 64位 VMware Workstation Pro 16
-
ubuntu 20.04
-
qemu (虚拟ARM开发板),qemu
aarch64
平台 -
ATF(TF-A)版本:2.9
-
gcc 交叉编译工具链:gcc version 12.2.1 20230401
下载 ATF
-
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
-
也可以从 github 下载:https://github.com/ARM-software/arm-trusted-firmware
编译方法
-
配置好 gcc 交叉编译工具链,这里使用
gcc version 12.2.1 20230401
,下载地址: https://snapshots.linaro.org/gnu-toolchain/12.2-2023.04-1/aarch64-linux-gnu/ -
配置好 交叉编译工具链的 环境变量
-
编译命令:
make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- PLAT=qemu all DEBUG=1
-
【注意】新版本的 ATF,
ARCH=aarch64
而不是ARCH=arm64
编译产物
- 主要为 :
bl1.bin bl2.bin bl31.bin
qemu 引导验证
-
当前没有 u-boot,貌似无法正确的引导,初步引起的信息如下
-
qemu.sh 脚本
#!/bin/bash
qemu-system-aarch64 \
-nographic \
-machine virt,secure=on \
-cpu cortex-a53 \
-smp 2 \
-m 1024 \
-bios bl1.bin \
-semihosting-config enable,target=native
-
备注:
-semihosting-config enable,target=native
需要这条 -
正常的板子,各个 bin 文件应该是烧写到 Flash 上的分区的,这里使用 qemu 模拟,需要本地文件的支持
-
chmod +x qemu.sh
,执行./qemu.sh
小结
- 初步了解 基于 qemu aarch64 平台 ATF 的编译方法,后面继续研究 如何与 u-boot 配合,引导整个Linux 系统