Intel Stratix 10配置用户指南

ID 683762
日期 12/16/2019
Public
文档目录

5.4.2.4. 修改应用程序映像列表

SDM使用配置指针模块来确定应用程序映像的优先级。

指针模块的操作要考虑到quad SPI闪存的以下特性:
  • 在擦除扇区时,所有扇区闪存比特均变为1。
  • 编程操作只能将1变为0。
指针模块包含一组值,这些值具有以下含义:
  • 全1–入口未使用。客户端可以编写一个指向该入口的指针。这是指针块上发生quad SPI擦除操作之后的状态。
  • 全0–入口之前已被使用,然后取消了。
  • 1和0的组合–指向应用程序映像的有效指针。

擦除配置指针模块时,所有入口都标记为未使用。要将应用程序映像添加到列表中,客户端将找到第一个未使用的位置,并将应用程序映像地址写入该位置。为了从列表中删除应用程序映像,客户端在指针模块列表中找到该应用程序映像地址,并将该地址写入0。

如果配置指针模块的空间不足以容纳新的应用程序映像,那么客户端将通过完成以下操作来压缩指针模块:

  • 擦除指针模块
  • 复制所有之前的有效入口
  • 添加新映像

使用HPS管理RSU时,U-Boot和LIBRSU客户端都实现模块压缩。对于从FPGA逻辑驱动RSU的设计,您可以采用很多不同的方法来实现指针模块压缩,包括 Nios® II代码,脚本语言或状态机。

指针模块压缩不会经常发生,因为指针模块最多有508个入口。

有两种配置指针模块:主要(CPB0)和备用(CPB1)配置指针模块。如果在擦除其中一个配置指针模块后即刻发生电源故障,那么这两个模块可以使应用程序映像列表受到保护。有关更多信息,请参考配置指针模块布局主题。压缩时,客户端会完全压缩(擦除和重写)主CPB。一旦主CPB有效,就可以安全地修改辅助CPB。重写时,CPB开头的幻数是写入CPB的最后一个字。(写入此数字后,只能更改映像指针槽的值。)

当客户端将应用程序映像写入闪存时,客户端确保更新其第一个签名模块(signature block)的主映像指针内的指针,以指向闪存中的正确位置。使用HPS管理RSU时,U-Boot和LIBRSU客户端均实现所需的指针更新。有关更多信息,请参考应用程序图像布局主题。