跳到主要内容

构建 T527 FES loader

主线 raw 负责板卡断电后的运行系统,FES loader 只负责让烧录主机临时取得 eMMC 访问能力。两条构建链彼此独立,因此替换主线内核或根文件系统时,不需要重新制作 loader。

检查五个固定输入

工程把 loader 的输入保存在:

loader/t527-fes/
├── image.cfg
├── sys_partition.fex
└── inputs/
├── config.fex
├── board.fex
├── sunxi.fex
├── u-boot.fex
└── fes1.fex

image.cfg 只声明这五个文件,sys_partition.fex 不声明任何分区。config.fexfes1.fex 提供板卡与 DRAM 初始化数据,u-boot.fexsunxi.fex 运行 FES/SRV,board.fex 保存板级配置块。

这些输入来自 Avaota A1/T527 已经完成过 FEL→FES 转换的 Tina5 启动集合。工程不复制 Tina5 的 dragon 程序,因此构建时必须提供 Tina5 SDK 根目录。

运行 loader 构建

AvaotaA1-T527-MainLineLinux 仓库根目录执行:

TINA_SDK_ROOT=/path/to/AvaotaA1-Tina5-SDK_V1 make loader

/path/to/AvaotaA1-Tina5-SDK_V1 替换为开发主机上的实际 SDK 根目录。构建脚本调用 SDK 中的 dragon,依据 image.cfg 与空分区配置生成:

out/avaota-a1-t527-fes-loader.img

检查 loader 内容

执行工程自带的结构验证:

make verify-loader

scripts/verify-loader.sh 不只检查文件是否存在,还会解析 IMAGEWTY 头、五个条目的名称与类型、每个载荷长度和 SHA-256,并确认分区数量为 0。通过时输出:

FES loader verification PASS
IMAGEWTY files: 5
image bytes: 1337344
partitions: 0 (no MBR entry)

当前 v9 loader 的完整 SHA-256 为:

867d43d12399016252a3d34c2ae50f6f362868f95c2985169d5a4b655a16417c

大小、哈希或五个条目中任何一项不匹配,都不能把文件用于后续烧录。loader 一旦换用其他板卡或 DRAM 参数,即使仍能被识别为 IMAGEWTY,也可能在 FEL→FES 阶段停止。

下一节把已经验证的 loader、主线 raw 和同版本 U-Boot 整理为发布文件。