25 lines
1.4 KiB
Markdown
25 lines
1.4 KiB
Markdown
# 远程升级 / 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 抢寄存器总线。
|