PolarFire SOC Auto Update 和 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 - 所长 - 博客园

PolarFire SOC Auto Update 和 IAP 文档阅读(四) IAP - 所长 - 博客园

PolarFire SOC Auto Update 和 IAP 文档阅读(五) AUTO recovery - 所长 - 博客园

PolarFire SOC Auto Update 和 IAP 文档阅读(六) Back Level Protection - 所长 - 博客园

 

1、首先 bitstream 文件 生成, 流程如下,最后 使用 export bitstream 导出不同格式的文件 用于 不同的烧录方式,我门使用 IAP ,因此会导出 .SPI 文件

image

 

2、文件格式 对应 烧录方法:IAP 和  auto update  是 SPI MASTER

image

 

3、SPI master programming  包含 IAP 和 auto update

image

 4、IAP 和 Auto update 烧录框图 红色线路

image

 

5、bitstream 文件 可以 包含  risc-v 代码 eNVM 文件 ,操作后,需要重新 生成 bitstream 文件, 这样 IAP 也能 升级 risc-v 代码

image

 

 6、 配置 bitstream 文件, 右键 Generate bitstream 即可, 点击 OK 后, 左键点击 Generate bitstream  即可生成 bitstream 文件, 绿色对话表示生成OK

image

 7、知识了解, MPFS250T  生成用于 IAP  或者 AUTO UPDATE 的 .SPI 文件大小 9414 KB , 这里我猜 文件最大 是 9414KB , 因此  外置 FLASH  要大于 9414KB , 开发板 ICICLE Kit 自带的芯片 是  1Gb  MT25QL01GBBB8ESF-0SIT

image

 8、所有编程模式 ,  大概流程  如下

  

 

image

 

 9、  设备编程时间 ,查阅 PolarFire® SoC Datasheet

 

image

 10、SPI 主模式编程说明

  

当系统控制器的 SPI(串行外设接口)配置为主模式时,设备可实现自编程。在 SPI 主模式编程中,编程镜像通过 SPI 目录存储在外部 SPI 闪存中。
 
SPI 主模式编程支持自动更新与IAP(在应用编程,In-Application Programming) 功能,具体说明如下:
 
  • 在自动更新编程中,若更新镜像的版本与当前已编程版本不同,系统控制器会在上电时从外部 SPI 闪存中读取更新镜像比特流,并对设备进行编程。
  • 在 IAP 模式下,由用户应用程序启动设备编程流程,系统控制器从外部 SPI 闪存中读取比特流后对设备进行编程。
 
需注意,自动更新与 IAP 操作均具有原子性(即操作不可分割),无法被 JTAG(联合测试行动小组)命令或 SPI 从模式命令中断。
 
  • 自动更新(Auto Update)功能:默认未启用,若需使用,需通过 Libero SoC 软件开启。
  • 自动编程(Auto Programming)与自动恢复(Auto Recovery)功能:SPI 主模式同样支持这两项功能(详见表 3-5),且二者默认已启用,无需用户配置。
 
有关 SPI 主模式编程期间的 I/O 状态信息,请参阅《编程期间的 I/O 状态》文档。
 
下表列出了 SPI 主模式编程所支持功能的启动源。

 

image

     自带恢复         能从编程失败中自带恢复设备     启动来源是 编程期间的设备电源故障

注:

  要执行 IAP(在应用编程)或自动更新操作,需配备外部 SPI 闪存。该 SPI 闪存与系统控制器的 SPI(串行外设接口)相连,并用于存储编程镜像。

   SPI 闪存被划分为多个扇区,具体结构如下:第一个扇区(扇区 0)中,有 1KB 大小的存储空间用作SPI 目录,该目录包含编程镜像索引;闪存的剩余存储空间则用于存储编程镜像。

 

 注:

1、如果有可能出现电源中断或者单粒子翻转(SEUs,一种辐射导致的电路错误),就不建议 “重新编程安全设置 Device security settings ”—— 不然容易意外把设备锁死,导致没法用。设备的安全设置、锁定功能,得在稳定的 “地面环境”(比如实验室这类可控的环境)里编程。另外,未来工具更新后,会支持 “现场更新用户加密密钥”(不用把设备拆回实验室,直接在使用现场更新密钥),以此实现 “密钥滚动” 功能(让密钥能定期更换,提升安全性)。
2、在对 eNVM(嵌入式非易失性存储器) 或 sNVM(安全非易失性存储器) 的 “比特流”(用来配置 / 编程存储器的数据流)进行 IAP(在应用编程,即设备开机运行时的编程) 时,如果突然电源中断或者电压骤降,会把 eNVM 或 sNVM 搞坏,导致设备之后没法正常启动。
3、只有用 LiberoSoC v2023.1 及更高版本 生成的 “比特流”,才能支持这些功能(言外之意:老版本工具生成的比特流不支持)。
 
 

要了解自动更新(Auto update)和在应用编程(IAP)的实现方法,请参考《PolarFire FPGA 自动更新与在应用编程应用笔记》

(图 3 - 8)展示了 SPI 主模式编程的推荐电路板配置。

image

 3.3.1 SPI 主模式编程接口, 电路设计要求,两个脚要拉高,配置 SPI 

SPI_EN 和 IO_CFG_INTF 引脚必须在器件外部进行配置,可通过电路板上的跳线或自举方式实现。下表提供了用于 SPI 主模式编程的 SPI_EN 和 IO_CFG_INTF 引脚配置详情。

image

 注:对于 SPI 主模式编程,SPI_EN 输入必须在器件加电或复位时被置为有效。如果在器件加电期间该输入被检测为低电平,SPI 控制器将无法用于 FPGA 架构(逻辑部分)。

3.3.1.1 系统控制器 SPI 模式与时钟

在 SPI 闪存读取操作中,系统控制器 SPI 工作于数据传输模式 3(即 SPI 模式 3)。此数据传输模式下的时钟极性(SPO/CPOL)与时钟相位(SPH/CPHA)二者均需设置为高电平(HIGH)。系统控制器的 SPI 采用 20 MHz 的固定时钟运行。

 

3.3.2 系统服务

PolarFire FPGA 和 PolarFire SoC FPGA 两类器件均集成了系统控制器(System Controller),该控制器可接收并响应用户发起的系统服务请求。
 
用户应用程序可发起以下与编程相关的系统服务:

・比特流认证(Bitstream authentication)

・IAP 镜像认证(IAP image authentication)

・自动更新(Auto update)

・在应用编程(IAP)

3.3.2.2 PolarFire SoC FPGA 系统服务

在 PolarFire SoC FPGA 中,系统服务是系统控制器(System Controller)执行的操作,这些操作由 PolarFire SoC 的微处理器子系统(MSS,Microprocessor Subsystem) 发起。MSS 通过系统控制器桥(SCB,System Controller Bridge)总线与系统控制器通信。

image

 For information about PolarFire SoC FPGA MSS system services driver and example SoftConsole project, see GitHub.

 

  下一篇 : PolarFire SOC Auto Update 和 IAP 文档阅读二 - 所长 - 博客园

posted on 2025-09-22 16:45  所长  阅读(26)  评论(0)    收藏  举报

导航