认识 FES 烧录文件
上一阶段得到的 raw 已经包含分区表、主线 U-Boot、Linux 和 Buildroot,但电脑通过 OTG 连接 T527 时,并不能把板载 eMMC 当作普通磁盘直接写入。烧录前还需要建立一条从 BootROM FEL 到 eMMC 的访问路径。
本工程使用 FES loader 临时启动板端的 eMMC 服务,再由 OpenixCLI 写入主线 raw。最终系统只来自 raw;loader 始终运行在内存中。
三个文件的职责
| 文件 | 谁使用 | 作用 | 是否写入 eMMC |
|---|---|---|---|
avaota-a1-t527-fes-loader.img | T527 BootROM 与 OpenixCLI | 初始化 DRAM并进入 FES/SRV | 否 |
avaota-a1-mainline-v9-tm4-coldboot.img | OpenixCLI、BootROM、U-Boot、Linux | 提供 SPL、FIT、FAT 启动分区和 ext4 根分区 | 是 |
openixcli-linux-x86_64 | Ubuntu 主机 | 扫描设备、启动 loader、写盘并读回验证 | 不适用 |
USB 从 FEL 重新枚举为 FES 后,电脑仍通过同一根 OTG 线与板卡通信,但协议和板端执行代码已经变化。OpenixCLI 必须持续绑定同一个 USB 物理位置,不能使用重新枚举后会变化的临时设备编号。
loader 不属于最终系统
loader 是一个 IMAGEWTY v3 文件,只包含五个板卡匹配的启动条目:
avaota-a1-t527-fes-loader.img
├── config.fex
├── board.fex
├── sunxi.fex
├── u-boot.fex
└── fes1.fex
它没有分区表、Boot0、Linux 或根文件系统。OpenixCLI 只把这些内容下载到 RAM,用完后不写入持久存储。完全断电后,板卡执行的是 raw 中的主线 SPL、TF-A、U-Boot、Linux 和 Buildroot。
raw 同时提供 User Area 和 Boot0 内容
主线 raw 的关键布局为:
0x00000000 DOS MBR
0x00002000 u-boot-sunxi-with-spl.bin
0x01000000 240 MiB FAT:Image、DTB、extlinux.conf
0x10000000 512 MiB ext4 Buildroot rootfs
OpenixCLI 从扇区 0 开始把整张 raw 写入 eMMC User Area。启用 --emmc-boot0-from-image 后,它还会检查 8 KiB 处的 eGON/SPL,再按 eMMC Boot0 的写入方式安装同一启动组件。这样 Boot0 与 User Area 中的 U-Boot 来自同一个经过校验的 raw。
下一节构建并检查这份 RAM-only FES loader。