Files
2026-07-14 18:18:17 +08:00

1.4 KiB
Raw Permalink Blame History

远程升级 / Flash 布局

这块内容的唯一真源是 fpga_update skill。 要生成 _update.mcs 或者把它烧进板子, 直接用那个 skill,别在这里另起炉灶。

  • ~/.claude/skills/fpga_update/SKILL.md —— 流程
  • ~/.claude/skills/fpga_update/references/quickboot.md —— flash 布局、切换字兜底、-imagesize 64 的由来
  • ~/.claude/skills/fpga_update/references/protocol.md —— TCP 1234 协议、以及 DPD 污染升级数据流的缺陷

三件容易记反的事:

  1. FPGA 的远程升级不走网页。 网页的 Remote Update 只认 imx6 的 *.tar.gz 固件包; .mcs 传上去会被 check_package.sh 直接删掉。FPGA 走 TCP 1234 的私有协议 (原厂工具 tools/Xfpga_ru.exe,替代品 fpga_update/scripts/fpga_ru.py)。
  2. 升级前必须关掉 DPD,否则 DPD 的 SPI1 流量会混进镜像,CRC 校验失败。
  3. _update.mcs 不能 JTAG 烧写,_initial.mcs 也不能远程升级。首次装机 / 救砖走 /fpga_flash(flash 型号 w25q128bv,烧 RU_golden/bitstream/golden_design_initial.mcs)。

调试期的第三条路

program_device 直接把 .bit 下到 FPGA,掉电即失。迭代验证用它最快 —— 不碰 flash, 配 .ltx 就能抓 ILA。功能确认后再走远程升级固化。

固化用的 bit 要去掉调试 ILA 重新实现:ILA 吃资源、恶化时序,还会和 imx6 抢寄存器总线。