100ASK T113S3 Pro 主线适配开发与验证记录
本章目标
把方案演进、失败和验收证据集中保存。操作规程只描述当前正式路径;历史试验留在这里,防止再次走回已经证伪的路线。
按时间顺序整理的任务状态、失败输出、根因定位和复现方法见真实调试记录。本章只保留最终验证结论、提交演进和证据边界。
证据来源
| 来源 | 用途 |
|---|---|
| 主线仓库 Git 历史 | 还原正式实现和修复顺序 |
| OpenixCLI 功能分支 | 确认 FEL RAM worker 的安全边界 |
logs/*.jsonl | 记录净化后的任务和电源操作 |
logs/*.log | 记录 UART 冷启动标志 |
manifests/*.sha256 | 将结论绑定到具体 artifact |
| 早期 SDK/对话记录 | 解释试验方向和失败原因,不作为当前操作输入 |
主线仓库提交演进
| 提交 | 内容 | 结论 |
|---|---|---|
dac178a | 增加可复现 T113S3 Pro 主线 NAND 端口 | 建立正式源码仓库 |
5586172 | 增加本地验证门禁 | 将配置、脚本、镜像和历史证据纳入自动检查 |
4a42781 | 记录硬件复验和 clean build 失败 | 本地通过不再等同于硬件可用 |
d1eedf7 | 修复 U-Boot patch 中 UART3 配置缺失 | 恢复 CONFIG_CONS_INDEX=4 并增加门禁 |
5859111 | 自动化两仓库构建和 installer 验收 | 固定分支、严格 USB 选择、区分 RAM 与 NAND 成功 |
1f28a1c | 将可复现源码重建提升为硬件验证 | 完成安装、温重启和两次冷启动闭环 |
OpenixCLI 对应实现提交为 f10ff48,后续 db12a5f 补充了硬件资格记录。
关键问题和修复
- 虚拟机看不到 FEL USB:将
1f3a:efe8明确连接到 guest。 - SPL 返回 FEL 失败:审计 R528 SRAM swap/thunk,调整 stack,保留 BootROM PLL,并加入有限端点重连。
- 冷启动报 boot source 4:将 R528 media 4 映射到 SPI NAND loader。
- 加载环境时复位:改为
ENV_IS_NOWHERE。 - 多套分区布局冲突:统一为 1/4/1/8/242 MiB。
- U-Boot NAND 读取全
ff:U-Boot DTS 取消强制 quad width。 - UBI 参数错误:从
ubi.mtd=rootfs改为ubi.mtd=sys。 - 手工启动被误当完成:要求永久参数重编、重刷和断电冷启动。
- clean build 静态通过但硬件失败:引入 artifact 状态分类和硬件 promotion gate。
- UART3 配置未进入永久补丁:修复 patch hunk 行数并检查最终
.config。 - 主机 RAM 完成被误当 NAND 完成:OpenixCLI 明确输出
scope=fel_ram_handoff和installerStatus=not_observed。 - 共享串口被诊断程序关闭:安装期间规定单一串口所有者。
冻结的 FES 试验
早期试验链为:
BootROM FEL -> Tina/IMAGEWTY RAM loader -> FES -> 主线组件
虽然部分任务完成了组件传输和校验,但没有完成正式冷启动闭环。该路线已经冻结:
- 不属于当前构建输入;
- 不出现在当前产物目录;
- 不作为失败时的自动回退;
- 仅保留净化任务记录供未来独立研究。
当前正式链只有纯主线 FEL + Linux RAM installer。
硬件任务记录
| 任务 | 产物状态 | 结果 |
|---|---|---|
mainline-1787655837814079629 | preserved verified baseline | installer 100%,冷启动成功 |
mainline-1787708569776828829 | 操作/工具错误 | 共享串口 handle 被关闭,不评价产物 |
mainline-1787708850567538011 | failed-do-not-use clean build | RAM handoff 50%,180 秒无 installer 标志 |
mainline-1787709324680503509 | preserved verified baseline | installer 100%,2 秒断电后冷启动成功 |
mainline-1787715829104265529 | source rebuild | installer 100%,温重启及两次断电冷启动成功 |
源码重建硬件验证哈希
以下核心文件来自 hardware-verified-source-rebuild-20260825.sha256:
ad0c442728ed633fa3505ab67b7758fbdc9a5d678baf0ca11ccaf78583e2dc11 boot.itb
1cb2b292cdd0844e70a151da0ba3202fb0023f1352376b4b49a521c62bbab691 fel-installer.itb
a57f92f99b7d56c411e65c7d4cc6c795ba2e84294fdbe04404748a8f62f67791 fel-sunxi-spl.bin
253e1131e83a823d8793a92543f0a78fcbab7951ede4322e9d1d3b999a9e8278 fel-u-boot.bin
87abf6b7fe01c5b8b99bb0bdef1cffc9df8e677482f9b8e1ee14f7d3ed68b170 spl-redundant.bin
e5c9349f9191fac502617c9afd64646e94000024dcb092c428a29dfad91a02c9 sys.ubi
0221b0035bd0d879578bbe0aaf181aaeb9f1c18779a02007d08d9096c3a21a1a uboot-redundant.bin
这些哈希证明一批历史硬件验证产物。重新构建产生不同哈希时,必须使用新清单并重新完成硬件 gate,不能为追求相同哈希而修改时间戳或跳过验证。
冷启动成功标志
保存的 UART 日志包含:
Trying to boot from sunxi SPI
U-Boot 2026.07 ... DshanPi T113S3 Pro
Verifying Hash Integrity ... sha256+ OK
Kernel command line: ... ubi.mtd=sys root=ubi0:rootfs ...
ubi0: attached mtd4 (name "sys", size 242 MiB)
VFS: Mounted root (ubifs filesystem)
DshanPi T113S3 Pro - mainline Buildroot
t113s3pro-mainline login:
当前结论边界
已经证明:
- 指定板卡和 W25N02KV 上的主线启动链;
- 纯主线 FEL RAM installer 设计;
- 从固定源码重建后的安装、读回、温重启和冷启动;
- 主机端设备绑定、哈希和计划约束。
没有证明:
- 任意 SPI NAND 型号和 OOB/ECC 组合;
- 任意工厂坏块分布;
- 批量并行烧录;
- 量产节拍、掉电保护和长期可靠性;
- 所有板载外设均已完成产品级验证。
后续更新规程
每次修改 U-Boot、Linux、Buildroot、OpenixCLI、分区或安装器时:
- 记录 Git commit;
- 从干净 clone 构建;
- 保存新
FEL_SHA256SUMS; - 运行所有本地门禁;
- 标记为
experimental; - 执行安装和读回;
- 执行温重启;
- 至少两次受控断电冷启动;
- 保存 UART/JSONL;
- 最后才能提升为
hardware-verified。