跳到主要内容

100ASK T113S3 Pro 主线镜像与分区设计

本章目标

冻结 SPI NAND 物理布局、安装阶段 DRAM 布局和镜像格式。U-Boot DTS、Linux DTS、安装器检查、启动命令和 OpenixCLI 计划必须使用同一组数值。

SPI NAND 分区

已验证的 256 MiB 开发布局为:

MTD名称偏移大小内容
mtd0spl0x000000001 MiB8 份主线 eGON SPL
mtd1uboot0x001000004 MiB主线 U-Boot proper legacy image
mtd2secure-storage0x005000001 MiB保留,只读
mtd3boot0x006000008 MiBboot.itb
mtd4sys0x00e00000242 MiBUBI,包含 rootfs

总容量:

1 MiB + 4 MiB + 1 MiB + 8 MiB + 242 MiB = 256 MiB

不能把 SD/eMMC 的 GPT、MBR、ext4 或 genimage.cfg 固定偏移直接应用到 SPI NAND。

NAND 写入镜像

真正写入 NAND 的对象只有四个:

文件目标生成方法
spl-redundant.binmtd0每个 128 KiB 擦除块起始处复制一份 SPL
uboot-redundant.binmtd1u-boot.img 后补 ff 到 4 MiB
boot.itbmtd3Linux zImage + 板级 DTB + SHA-256
sys.ubimtd4rootfs.ubifs 封装为动态 rootfs

secure-storage 不由安装器写入。

spl-redundant.bin 的“8 份”是开发板已验证布局,不代表量产级坏块冗余策略。不同坏块分布仍需单独资格验证。

正常启动 FIT

boot.itb 使用:

对象load/entry
Linux zImage0x42000000
板级 DTB0x43000000

FIT 中 kernel 和 FDT 都带 SHA-256 节点。U-Boot 从 boot MTD 分区读到 0x44000000,随后 bootm 根据 FIT 指定地址展开。

FEL 安装阶段 DRAM 布局

角色文件地址限制
SPLfel-sunxi-spl.bin0x00020000精确 eGON SPL
U-Boot properfel-u-boot.bin0x42e00000entry 同地址
安装 FITfel-installer.itb0x44000000最大 8 MiB
payloadfel-payload.part-*0x44800000 连续放置总计最大 24 MiB

安装 FIT 内部地址:

对象地址
installer Linux0x41000000
installer DTB0x41800000
installer initramfs0x41c00000

fel-payload-reserved-memory.dtso 保留:

0x44800000 - 0x45ffffff

避免内核把 payload 内存重新分配。

Payload 结构

封装脚本生成可复现 tar.gz:

fel-payload.tar.gz
├── spl-redundant.bin
├── uboot-redundant.bin
├── boot.itb
├── sys.ubi
└── SHA256SUMS

归档使用固定排序、时间戳 0、owner/group 0。随后按 5 MiB 切分为 1 至 5 个 fel-payload.part-*

OpenixCLI 最多接受 8 个 artifact:

1 SPL + 1 U-Boot + 1 installer FIT + 最多 5 个 payload 分片

输出目录

out/t113s3pro-mainline-fel/
├── FEL_ARTIFACTS
├── FEL_SHA256SUMS
├── fel-sunxi-spl.bin
├── fel-u-boot.bin
├── fel-installer.itb
├── fel-payload.part-00
├── fel-payload.part-01
├── ...
├── fel-payload.tar.gz
├── spl-redundant.bin
├── uboot-redundant.bin
├── boot.itb
└── sys.ubi

验证方法

cd out/t113s3pro-mainline-fel
cat FEL_ARTIFACTS
sha256sum -c FEL_SHA256SUMS

仓库门禁还会检查:

  • SPL 精确长度、eGON magic 和 checksum;
  • 8 个 SPL 擦除块副本;
  • U-Boot 分区镜像恰好 4 MiB;
  • FIT 能被同构建 mkimage -l 解析;
  • payload 成员和内部哈希;
  • OpenixCLI 计划地址不重叠;
  • 废弃 IMAGEWTY/Android/独立安装器产物不存在。

失败处理

错误处理
installer FIT 超过 8 MiB缩减 initramfs,不移动 payload 地址绕过检查
payload 超过 24 MiB缩减 rootfs,不扩大保留区后直接烧录
分片超过 5 个检查 payload 内容和压缩,不提高 OpenixCLI 上限
地址重叠回到 FIT 和计划生成脚本统一修正
哈希不一致删除本次输出并重新打包,禁止混用旧分片

需要保存的证据

每一批产物必须一起保存:FEL_ARTIFACTSFEL_SHA256SUMS、OpenixCLI plan、顶层 SHA-256、源码提交和硬件验证状态。