PolarFire SOC Auto Update 和 IAP 文档阅读(四) IAP
文档来自:PolarFire FPGA and PolarFire SoC FPGA Programming User Guide
PolarFire SOC Auto Update 和 IAP 文档阅读一 - 所长 - 博客园
PolarFire SOC Auto Update 和 IAP 文档阅读二 - 所长 - 博客园
PolarFire SOC Auto Update 和 IAP 文档阅读(三) AUTO UPDATE - 所长 - 博客园
3.3.4. 在应用编程(IAP)
IAP(在应用编程)会使用特定的编程镜像对器件进行重新编程。在 IAP 中,无论镜像版本如何,器件都会根据镜像索引或 SPI 镜像地址来选择编程镜像。
PolarFire FPGA 中的架构用户逻辑以及 PolarFire SoC FPGA 中的 MSS 用户应用程序会指定编程镜像,并通过 IAP 系统服务发起器件的重新编程。
3.3.4.1 使用系统服务的 IAP(提问)
用户应用程序通过 PolarFire FPGA 中的架构用户逻辑以及 PolarFire SoC FPGA 中的 MSS 用户应用程序,发起 IAP 系统服务请求。系统服务会指定该镜像用于验证还是编程。系统控制器会自动从 SPI 闪存读取比特流,以验证或编程器件内容。
验证操作
验证操作会将指定的编程镜像内容与器件内容进行比较。
下表列出了使用镜像索引的 IAP 系统服务请求中的各个字段。


若 IAP 验证成功,会生成状态码 0。若 IAP 验证失败,会生成一个 8 位错误码。有关错误码的详细信息,请参阅附录:错误码。
建议使用摘要检查(Digest Check)系统服务来验证器件内容的完整性,而非 IAP 验证操作。更多信息,请参阅《PolarFire 系列系统服务用户指南》。
编程操作
编程操作会使用指定的编程镜像更新器件内容。IAP 编程操作在执行编程前不会对镜像进行认证。镜像可通过 IAP 镜像认证系统服务进行认证。更多信息,请参阅 “IAP 镜像认证系统服务”。
在以下场景中,用户应用程序无法获取状态码:
- 若 IAP 成功,器件会自动重启以初始化新设计;
- 若 IAP 失败,IAP 恢复程序会尝试使用镜像 0 对器件进行编程。

重要提示:当 SPI 目录中指向镜像 1 的指针为空时,IAP 恢复(程序)会选用镜像 0。更多信息,请参阅《SPI 目录》。
下表列出了使用镜像索引的 IAP 系统服务请求中的各个字段。
表 3-16. 按镜像索引的 IAP 编程请求系统服务

可以指定一个 SPI 闪存地址,而非 SPI 目录中的镜像索引,如下表所述。


3.3.4.2 编程失败时的恢复
当 IAP 过程中发生断电时,器件会使用镜像 0 对自身进行编程。
注:当器件无法对特定镜像进行编程时,会先重试一次,之后再使用镜像 0 对自身进行编程。若 IAP 结束后器件仍处于空白状态,则不会通过 I/O 接口给出任何指示,此时需要人工干预。
3.3.4.3. IAP Flow

- 作为编程过程的一部分,器件仅检查比特流的 BITS(比特流的起始位)和 AUTH(加密密钥信息)组件。
3.3.4.4 IAP 使用模型(提问)
两个器件系列均支持多镜像 IAP 使用模型,该模型允许在 SPI 闪存中存储最多 255 个镜像。镜像描述符指针位于 SPI 闪存的 0 扇区。
器件可使用任何镜像进行编程;但如果编程失败,器件会使用镜像 0 进行编程。镜像 0 指针旁边的编程镜像指针必须为空(空插槽)。
该模型适用于需要从可用镜像中选择特定镜像对器件进行更新的场景。图 3-20 展示了多镜像使用模型。
图 3-20:多镜像使用模型

相关新闻
CICD流程建设之持续测试实践指南
2026/9/9 22:34:04
查看详情
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
2026/9/9 19:37:04
查看详情
HTTP协议工作原理与生产环境服务器搭建实战 - 详解
2026/9/11 20:05:21
查看详情
YOLOv8车道线五类检测与几何约束偏离预警系统
2026/9/12 19:09:36
查看详情
【2017-05-16】一个简单的内存检测脚本
2026/9/12 19:09:36
查看详情
【2017-03-29】Ubuntu下使用NFS
2026/9/12 19:09:05
查看详情
CTF实战工具清单:五大方向高频利器与避坑指南
2026/9/12 19:09:05
查看详情
从RAG到上下文工程:知识管理的范式迁移与接口化实践
2026/9/12 19:08:35
查看详情
Apache POI替代EasyExcel的实战迁移指南
2026/9/12 19:08:05
查看详情
YOLOv8车道线五类检测与几何约束偏离预警系统
2026/9/12 19:09:36
查看详情
【2017-05-16】一个简单的内存检测脚本
2026/9/12 19:09:36
查看详情
【2017-03-29】Ubuntu下使用NFS
2026/9/12 19:09:05
查看详情
CTF实战工具清单:五大方向高频利器与避坑指南
2026/9/12 19:09:05
查看详情
从RAG到上下文工程:知识管理的范式迁移与接口化实践
2026/9/12 19:08:35
查看详情
Apache POI替代EasyExcel的实战迁移指南
2026/9/12 19:08:05
查看详情
DnCNN与BM3D对比:图像去噪原理及MATLAB实战
2026/9/12 0:00:06
查看详情
Element Plus Layout 布局组件完全指南:24 栅格系统、响应式断点与实用隐藏类
2026/9/12 0:00:06
查看详情
Spring Boot与Ollama大模型推理性能优化实战
2026/9/12 0:00:36
查看详情
AI视频二次采样原理与ComfyUI工作流实战:从模糊到高清
2026/9/12 6:33:06
查看详情
负向提示词在LLM中的逆反效应:为什么别想粉色大象总是失效
2026/9/12 6:33:07
查看详情
叙事游戏开发:从对话系统到分支剧情的完整技术实现
2026/9/12 11:24:56
查看详情
雨花区哪家财务公司代理记账比较好?
2026/9/12 6:33:11
查看详情
从零到一构建开源项目的完整历程:交付前的最后检查怎么做
2026/9/12 6:33:11
查看详情
日志平台 日志分析平台与全链路追踪:交付前的最后检查怎么做
2026/9/11 9:16:21
查看详情