Files
skills-win/petalinux-emmc/references/hjx9009-tf.md
T

3.8 KiB
Raw Blame History

HJX9009:用 J1 TF 替代 PR26 的 eMMC

本 profile 依据项目 Notes/PR26.md、Notes/Task-PR26-1.md、Notes/Result-PR26-1.md、Petalinux/delivery/pr26_tf_20260915/MANIFEST.md 以及 Notes/auto/pr26_qspi_20260915/tf_final_* 实测记录。每次核对 PCB 版本与当前交付;下面的 CID、容量、IP、镜像字节数和 UUID 均为历史证据,不是未来部署常量。

硬件与启动

  • XC7Z100FF900;BootROM 启动绑带 MIO[5:4:3]=100 选 QSPI。U5/U6 双级联 S25FL128S,历史 sf probe 为 s25fl128s_64k、32 MiB、128 KiB 擦除。先做现板探测再写任何偏移。
  • 板上无 eMMC。J1 microSD 经 U12 MAX13035E 接 SD0,MIO40=CLK、41=CMD、42..45=DAT0..3,MIO13=SDIO_SDDET;SD1 的 MIO46..53 已有以太网/UART/MDIO用途。DT 应启用 sdhci0、4 bit、≤50 MHz、no-1-8-v、disable-wp,禁用 sdhci1;不要声明 non-removable。
  • 历史 HDF/FSBL 把 SD0_CD_SEL 指向 EMIO56,与原理图不符。优先从新 HDF/FSBL修正,不能仅靠无效的 cd-inverted 属性。历史 U-Boot sd0_cd_fix 把 0xF8000830 写为 0x000D0037,但 MIO13 曾被复用为 QSPI1 IO3 输出,原生 Card Present 仍为 0。实际完成的正式系统先由 U-Boot 读取 TF FAT FIT,再在早期 Linux 桥接 initramfs 设置 SDHCI CDTEST、枚举 SD 卡、挂载 ext4 并切换 /sbin/init。CDTEST 是这版硬件的受控兼容旁路,不证明卡检测硬件修复;若新版硬件/FSBL 可原生检测,优先删除旁路并做双冷启动验收。 若需沿用旁路,桥接必须先验证 CID/容量/根分区 UUID,超时和身份不匹配时停止或转救援,不可静默挂错介质。
  • 历史正式 bootcmd 为:run phyfix; if mmc dev 0 && fatload mmc 0:1 0x02000000 image.ub; then run sd0_cd_fix; bootm 0x02000000; else sf probe 0 0 0 && sf read 0x02000000 0x00520000 0x00ED8E98 && run sd0_cd_fix && bootm 0x02000000; fi。此处 0x00ED8E98 是旧救援 FIT 的实际字节数,未来必须从当前镜像/布局重算并验证 DDR 安全范围;不得照抄。先证明 TF 分支,再证明无卡/坏 FIT 救援分支;2026-09-15 交付的后一分支未独立实测。

介质边界与验收的真实结果

  • 历史卡 15 GiB,CID 05000c61736466672200000012018c00。原 1 GiB FAT32 BOOT + 14 GiB ext4 在约 8 GiB 及以上访问出现重复读写/文件系统不一致;无法唯一归咎卡或板端。因此最后采用低地址 p1 LBA 2048..2099199(1 GiB FAT32),p2 LBA 2099200..14682111(6 GiB ext4),尾部故意空置。不要把这个历史保守布局应用于新卡,也不要把旧卡扩回 14 GiB;新介质要独立做拟用范围的重复块测试、fsck 和回读。
  • 历史 pr26_tf_20260915 已将新 FSBL/U-Boot 写 QSPI boot,558976 字节写后全长 cmp.b/CRC 通过;TF p1 放 image.ub,p2 为 ext4 正式根。三次断电启动均显示 FAT FIT 读取、FIT hash 校验、桥接挂载 /dev/mmcblk0p2、sysvinit/Dropbear/联网;第三次证实跨断电持久化文件回读。日志含非致命 BusyBox mount/switch_root 与 RTC 警告,不可描述为“零警告”。
  • rootfs.tar.bz2 最终归档晚于 p2 写入;历史对照有 23 个构建元数据/包数据库/版本或认证记录差异,因此不能把最终归档宣称为板上逐字节版本。新交付应让上卡内容与冻结归档同源并核对关键文件。
  • 旧 QSPI kernel 救援 FIT 保留在 0x520000;2026-09-15 的最终 BOOT 更新后,无卡实物冷启动回退尚未独立验证。后续完整 E4 必须补上该门禁。

网络历史实测为板 192.168.1.50/24、Windows TFTP 192.168.1.126;Notion 的 192.168.1.140/.66 是例子。每次由 live interface、TFTP 文件及 SHA-256 重新确认。PL FPGA manager 注册不等于最新 bit 已转换/加载;不要混入此 skill 的正式系统完成状态。