跳到主要内容

主线系统构建关系

板卡启动时,SPL、TF-A、U-Boot、Linux 和用户空间依次运行;在开发主机上构建时,各项目却不是简单地按这个顺序执行。先分清这两种顺序,后面遇到文件缺失或版本不匹配时,才知道应该回到哪里处理。

启动顺序与构建顺序不同

观察位置看到的顺序关心的问题
板卡串口BootROM → SPL → TF-A → U-Boot → Linux → 用户空间系统停在了哪个阶段
开发主机工具链与配置 → 各项目产物 → 分区镜像 → 整盘镜像某个文件由谁生成、交给谁使用

TF-A、U-Boot、Linux 与 Buildroot 如何组合

图中有两个关键衔接:

  1. TF-A 先生成 bl31.bin,U-Boot 在制作 FIT 时把它与 U-Boot proper、DTB 组合起来;
  2. Buildroot 组织 Linux 和用户空间的构建结果,再由镜像脚本把启动固件、FAT 分区和根分区写入固定布局。

Tina5 SDK 提供的工具

课程不是构建或烧录 Tina5 系统。工程借用了 Tina5 SDK 中已经适配 T527 的交叉编译工具链,以及全志设备进入烧录模式、向 eMMC 写入整盘镜像的能力。

Tina5 SDK
└── prebuilts/
└── gcc/
└── linux-x86/
└── aarch64/
└── toolchain-sunway_10.3.1/
Tina5 SDK 提供主线工程自己完成
AArch64 交叉编译器编译主线 TF-A、U-Boot、Linux
全志 USB/OTG 烧录链路生成主线系统所需的分区与文件
芯片可识别的烧录封装方式组合主线启动固件和根文件系统

所以最终烧进 eMMC 的内容仍是主线系统。Tina5 SDK 在这里承担的是工具角色,不是运行时系统角色。

四个组件的构建产物

项目主要输入主要输出谁会使用
TF-AT527/A523 平台代码、编译参数bl31.binU-Boot 的 FIT
U-Bootdefconfig、板级 DTS、bl31.binSPL、U-Boot proper、组合启动固件BootROM、SPL、eMMC 镜像
Linuxarm64 配置、设备树、驱动Image、DTB、内核模块U-Boot、根文件系统
Buildrootdefconfig、overlay、post-build 脚本rootfs、启动分区文件、镜像目录镜像组装脚本

判断一个命令是否成功时,不要只看退出码,还应检查预期产物是否出现、文件大小是否合理,以及下一阶段是否能识别它。

Buildroot 需要新增哪些板级文件

官方 Buildroot 没有 Avaota A1 的板级入口,因此课程工程需要补齐一组可追踪的配置文件:

buildroot/
├── configs/
│ └── avaota_a1_mainline_defconfig
└── board/
└── avaota/
└── a1-mainline/
├── linux.fragment
├── rootfs-overlay/
├── post-build.sh
└── genimage.cfg
文件解决的问题
avaota_a1_mainline_defconfig选择架构、工具链、Linux、文件系统和软件包
linux.fragment在主线默认配置上补充板卡所需内核选项
rootfs-overlay/放入 extlinux.conf 和板级用户空间文件
post-build.sh在镜像生成前整理内核、DTB 和启动文件
genimage.cfg定义 FAT、ext4 和整盘镜像的分区关系

这些文件把原本散落在命令行里的选择固定下来,使一次成功构建可以被再次执行,也便于后续定位是哪一层配置发生了变化。

对应最终镜像与上游产物

一次完整构建结束后,镜像目录中的关键文件应能回到明确的生成项目:

output/images/
├── bl31.bin ← TF-A
├── u-boot-sunxi-with-spl.bin ← U-Boot + TF-A
├── Image ← Linux
├── sun55i-t527-avaota-a1.dtb ← Linux
├── rootfs.ext4 ← Buildroot
├── boot.vfat ← Image + DTB + extlinux.conf
└── avaota-a1-mainline-emmc.img ← 启动固件 + 分区镜像

如果最终镜像启动失败,这份对应关系可以把问题从“整套系统不工作”缩小为某一个输入文件或某一次组装操作。

主线系统的构建顺序

补齐并验证 BL31

让 U-Boot 从 eMMC 启动

生成 Linux、DTB 与 rootfs

组合并烧录 eMMC 整盘镜像

明确启动顺序和构建产物之后,下一步进入四个官方源码项目,检查指定版本已经提供的 T527 与 Avaota A1 支持。

下一节:检查 T527 与 Avaota A1 的主线支持