smartfusion2 Programming Recovery
UG0451: SmartFusion2 and IGLOO2 Programming User Guide
9 Programming Recovery
Programming recovery, if enabled, allows the device to automatically recover from a power failure during a programming operation.
Programming recovery requires an external SPI flash to be connected to SPI_0 within the MSS/HPMS. Programming recovery is supported for MSS ISP and IAP and is not intended for recovery from the following events:
• SPI flash error
• Authentication error of programming bitstream
• Loss of communications link during ISP If there is loss of communications link during programming, the system controller does not time out, but keeps waiting for more data indefinitely. In this case, the communications link must be reestablished. Programming recovery details:
• If power fails, recovery occurs during power up where neither the FPGA fabric nor the Cortex-M3 processor is active.
• After the recovery is successful, the device is enabled automatically.
• If recovery fails, the device needs to be powered up again.
• If the golden image is corrupted, the recovery occurs each time the device reboots but eventually it fails and the device goes to idle state.
Programming recovery is not supported in M2S/M2GL050 devices.
若启用编程恢复功能,该功能可在编程操作期间发生电源故障时实现设备自动恢复。编程恢复需在MSS/HPMS中将外部SPI闪存连接至SPI_0接口。
编程恢复功能支持MSS ISP和IAP,但不适用于从以下事件中恢复:
• SPI闪存错误
• 编程比特流认证错误
• ISP期间通信链路中断
若编程过程中出现通信链路中断,系统控制器不会超时,而是保持无限期等待数据的状态。此种情况下必须重新建立通信链路。
编程恢复具体说明:
• 若发生电源故障,恢复过程将在上电期间进行,此时FPGA架构和Cortex-M3处理器均处于非活动状态
• 恢复成功后,设备将自动启用
• 若恢复失败,需重新为设备上电
• 若初始镜像损坏,每次设备重启时都会尝试恢复,但最终会失败并进入空闲状态
注:M2S/M2GL050系列器件不支持编程恢复功能。
Programming recovery works through the MSS/HPMS SPI_0 port. An external SPI flash device needs to be programmed with the golden image and the corresponding SPI directory and connected to the SPI_0 port.
Four SPI slave select pins of the SPI_0 interface (SS4, SS5, SS6, and SS7) drive high during programing (except 005 and 010 devices). The remaining SPI_0 pins are tristated with weak pull up.
These four pins that drive high during programming must not be used as control pins. The I/O level and drive strength are based on the previous settings programmed into the device. SmartFusion2 and IGLOO2 devices need to be programmed with programming recovery settings in Libero SoC to enable programming recovery during manufacturing flow, as shown in the following figure. The required security settings are also programmed at that time. After the recovery settings are programmed, they must not be changed or modified during remote updates.
The remote update of security or recovery setting in the field poses a risk because if power fails in the middle of the update, the recovery setting might get corrupted. If the recovery setting gets corrupted, the recovery does not take place when power comes back. For more information, see the Libero SoC User Guide.
The system controller is unable to change the oscillator frequency after a successful Programming Recovery. The oscillator frequency remains at 25 MHz instead of 50 MHz. Refer to one the following demo guides for a workaround. For implementation details, see the following documents:
编程恢复通过MSS/HPMS SPI_0端口实现。需要将外部SPI闪存设备预先烧录黄金镜像及对应SPI目录,并连接至SPI_0端口。
在编程过程中(除005和010型号设备外),SPI_0接口的四根SPI从选择引脚(SS4/SS5/SS6/SS7)会保持高电平驱动。其余SPI_0引脚则处于弱上拉的三态模式。
这四根编程期间保持高电平驱动的引脚不得用作控制引脚,其电平状态和驱动强度取决于设备中原先编程的配置。
如图表所示,SmartFusion2和IGLOO2器件需通过Libero SoC预先写入编程恢复设置,以便在生产流程中启用编程恢复功能。相关安全设置也将同步写入。恢复设置编程完成后,在远程更新过程中严禁修改这些设置。若在现场更新安全或恢复设置,中途断电可能导致恢复设置损坏,进而造成恢复功能失效。具体细节请参阅《Libero SoC用户指南》。
成功完成编程恢复后,系统控制器无法更改振荡器频率——其将保持25MHz而非50MHz。相关解决方案请参考下列演示指南之一。
具体实现细节请参阅以下文档:



没翻译完,待续,2025年8月27日 21点58分
浙公网安备 33010602011771号