PolarFire SOC Auto Update 和 IAP 文档阅读(六) Back Level Protection

 

 文档来自: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 - 所长 - 博客园

 

Bypassing the Back Level Protection

 

若在 “配置安全”(Configure Security)工具中启用了回退版本保护(Back Level Protection),则可在使用 Libero 导出 SPI 比特流时绕过该保护。 

为防止编程恢复失败,请启用 “为恢复 / 黄金比特流绕过回退版本保护(仅限 SPI 文件)” 选项(Bypass the Back Level Protection for Recovery/Golden bitstream),如下图所示。

 

 图 4-1. PolarFire® FPGA—— 选择 “绕过回退版本保护” 功能

image

 

 

图 4-2. PolarFire® SoC FPGA—— 选择 “绕过回退版本保护” 功能

 

image

 

 

 

当使用设计和内存初始化数据将 SPI 比特流添加到 SPI 闪存时,工具会在该比特流中显示回退版本保护绕过功能的状态,如下图所示。

 

 图 4-3. 回退版本保护绕过功能的状态

image

 

4.1. Bypass Back Level Protection Use Case  
4.1.  绕过回退版本保护的用例

image

 

步骤说明如下:
 
  1. 器件使用版本 2、回退版本 1的比特流完成编程,当前器件的回退版本设置为 1。
  2. 随后,器件使用版本 3、回退版本 2的比特流进行更新,当前器件的回退版本更新为 2。
  3. 器件尝试使用版本 4 的比特流进行自我更新,但更新失败。在此情况下,器件会尝试使用版本 2 的黄金 / 恢复比特流进行恢复 —— 但此次恢复同样会失败,原因是当前器件的回退版本保护已设置为 2,而黄金 / 恢复比特流的版本与回退版本相等。
     
    为避免因回退版本保护导致编程恢复失败,必须为黄金 / 恢复比特流启用 “绕过回退版本保护” 功能(参见图 4-1)。

 
 
下面是 AI 的总结: 

 

一、回退版本保护

1、回退版本保护的作用
回退版本保护是在 “Configure Security” 工具中启用的安全机制,其核心逻辑是:仅允许器件编程版本严格高于当前设备回退版本的比特流,防止旧版本固件被误写入,保障系统版本的向前兼容性。启用后,若待编程比特流版本≤设备当前回退版本,器件会拒绝编程操作。
2、需绕过保护的核心场景
当编程失败(如自动更新 / IAP 过程断电、镜像损坏)需触发编程恢复流程时,恢复所用的 “黄金镜像(Golden Image)” 或 “恢复镜像(Recovery Image)” 版本可能与设备当前回退版本相等(甚至更低)。此时,回退版本保护会阻止恢复镜像的编程,导致恢复失败,因此需为这类特殊镜像绕过该保护机制。
 

二、关键操作:如何绕过回退版本保护

绕过操作需在Libero SoC 工具导出 SPI 比特流时配置,核心步骤如下:
 
  1. 前提条件:已在 “Configure Security” 工具中启用 “Back Level Protection”,且需为 “恢复 / 黄金镜像(仅 SPI 格式文件)” 配置绕过;
  2. 操作路径:在 Libero SoC 中导出 SPI 比特流时,勾选 “Bypass the Back Level Protection for Recovery/Golden bitstream (SPI files only) ” 选项(界面参考文档中 “Figure 4-1. PolarFire® FPGA—Selecting Bypass Back Level Protection Feature” 和 “Figure 4-2. PolarFire® SoC FPGA—Selecting Bypass Back Level Protection Feature”);
  3. 状态验证:当含绕过配置的 SPI 比特流通过 “Design and Memory Initialization” 功能添加到外部 SPI 闪存时,Libero 工具会在界面中显示 “回退版本保护绕过” 的启用状态(参考 “Figure 4-3. Status of Bypass Back Level Protection”),可直观确认配置是否生效。

三、实际应用案例:绕过保护的具体作用

文档通过 “Table 4-1. Bypass Back Level Protection Use Case” 展示了典型场景,核心流程如下:
 
  1. 步骤 1(初始编程):器件用版本 2、回退版本 1 的黄金镜像编程,设备当前回退版本设为 1;
  2. 步骤 2(正常更新):器件用版本 3、回退版本 2 的更新镜像编程,设备当前回退版本更新为 2;
  3. 步骤 3(恢复失败与解决):
    • 器件尝试用版本 4 的更新镜像编程失败,触发恢复流程,尝试用版本 2 的黄金镜像恢复;
    • 未绕过保护时:因黄金镜像版本 2 = 设备当前回退版本 2,回退版本保护阻止恢复,导致恢复失败;
    • 启用绕过保护后:黄金镜像不受回退版本限制,恢复流程正常执行,避免器件因保护机制陷入 “无法恢复” 的空白状态。

 

四、核心注意事项

  • 适用范围限制:仅支持为 “恢复 / 黄金镜像” 的SPI 格式文件绕过保护,其他格式(如 DAT、JOB)不支持;
  • 工具依赖:所有绕过配置需在 Libero SoC 中完成,且需确保工具版本支持该功能(建议参考 Libero SoC 文档确认兼容性);
  • 安全关联性:绕过操作仅针对 “恢复场景” 的特定镜像,不影响其他常规镜像的回退版本保护,平衡了恢复灵活性与系统安全性。

posted on 2025-09-25 16:03  所长  阅读(19)  评论(0)    收藏  举报

导航