Skip to main content

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 补充了硬件资格记录。

关键问题和修复

  1. 虚拟机看不到 FEL USB:将 1f3a:efe8 明确连接到 guest。
  2. SPL 返回 FEL 失败:审计 R528 SRAM swap/thunk,调整 stack,保留 BootROM PLL,并加入有限端点重连。
  3. 冷启动报 boot source 4:将 R528 media 4 映射到 SPI NAND loader。
  4. 加载环境时复位:改为 ENV_IS_NOWHERE
  5. 多套分区布局冲突:统一为 1/4/1/8/242 MiB。
  6. U-Boot NAND 读取全 ff:U-Boot DTS 取消强制 quad width。
  7. UBI 参数错误:从 ubi.mtd=rootfs 改为 ubi.mtd=sys
  8. 手工启动被误当完成:要求永久参数重编、重刷和断电冷启动。
  9. clean build 静态通过但硬件失败:引入 artifact 状态分类和硬件 promotion gate。
  10. UART3 配置未进入永久补丁:修复 patch hunk 行数并检查最终 .config
  11. 主机 RAM 完成被误当 NAND 完成:OpenixCLI 明确输出 scope=fel_ram_handoffinstallerStatus=not_observed
  12. 共享串口被诊断程序关闭:安装期间规定单一串口所有者。

冻结的 FES 试验

早期试验链为:

BootROM FEL -> Tina/IMAGEWTY RAM loader -> FES -> 主线组件

虽然部分任务完成了组件传输和校验,但没有完成正式冷启动闭环。该路线已经冻结:

  • 不属于当前构建输入;
  • 不出现在当前产物目录;
  • 不作为失败时的自动回退;
  • 仅保留净化任务记录供未来独立研究。

当前正式链只有纯主线 FEL + Linux RAM installer。

硬件任务记录

任务产物状态结果
mainline-1787655837814079629preserved verified baselineinstaller 100%,冷启动成功
mainline-1787708569776828829操作/工具错误共享串口 handle 被关闭,不评价产物
mainline-1787708850567538011failed-do-not-use clean buildRAM handoff 50%,180 秒无 installer 标志
mainline-1787709324680503509preserved verified baselineinstaller 100%,2 秒断电后冷启动成功
mainline-1787715829104265529source rebuildinstaller 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、分区或安装器时:

  1. 记录 Git commit;
  2. 从干净 clone 构建;
  3. 保存新 FEL_SHA256SUMS
  4. 运行所有本地门禁;
  5. 标记为 experimental
  6. 执行安装和读回;
  7. 执行温重启;
  8. 至少两次受控断电冷启动;
  9. 保存 UART/JSONL;
  10. 最后才能提升为 hardware-verified

参考记录