• Inter FPGA配置管理SDM(Secure Device Manager)与配置理解


    SDM(Secure Device Manager)包括外围设备、加密IP和传感器、引导ROM、三冗余锁步处理器以及SDM框图中所示的其他模块。SDM执行并管理以下安全功能:

    •配置位流验证:在配置状态期间,SDM验证Intel生成的配置固件和配置位流,确保配置位流来自可信源。所有Intel Agilex都支持身份验证。
    •加密:加密保护配置位流或机密数据免受未经授权的第三方访问。
    •侧通道攻击保护:侧通道攻击防护在非侵入性攻击下保护AES密钥和机密数据。
    •完整性检查:完整性检查验证意外事件没有损坏配置位流。此功能处于活动状态,即使您未启用身份验证。

    SDM框图 

    传感和诊断模块SDM控制的附加功能概述:

    •当您选择-V和-E设备时,传感和诊断模块SDM使用SmartVID功能的温度传感器与外部PMBus电压调节器进行通信。
    •AES/SHA和其他加密加速器块实现安全配置和引导。
    •AS通过专用SDM引脚启用主动配置方案。 

    •Avalon ST x8配置方案使用SDM I/O引脚。Avalon ST x16和x32配置方案使用专用SDM I/O引脚和双用途I/O针脚。有关更多信息,请参阅传感和诊断模块引脚映射。
    •为了减少配置文件大小,支持更小的内存大小,并实现更快的配置,Intel Quartus Prime软件压缩配置数据。所有Intel Agilex设备都压缩配置位流。此功能始终处于启用状态。指定加密配置位流时,“Quartus Prime Pro Edition”软件会在加密前压缩配置位流。
    •Intel Agilex设备中包含的特定PCIe块支持CvP。

     

     SDM配置时序图

    SDM配置状态机

     

    Power-On状态

    上电复位(POR)将Intel Agilex设备保持在复位状态,直到电源输出在推荐的工作范围内。tRAMP定义了最大电源斜坡时间。如果电源斜坡时间不符合tRAMP时间,则Intel Agilex设备I/O引脚状态未知。

    初始配置时序

    图的第一部分显示了正常上电复位后初始配置的预期定时。最初,应用逻辑将nCONFIG信号驱动为低(POR)。在正常条件下,nSTATUS跟随nCONFIG状态,因为nSTATUS反映当前配置状态。nCONFIG只有在与nSTATUS具有相同值时才必须更改。当发生错误时,nSTATUS脉冲为低,当设备准备接受重配置时,再拉高。

    1.SDM启动时采样MSEL信号,以确定FPGA配置方案。SDM在下一次上电之前不会再次对MSEL引脚进行采样。
    2.当nCONFIG信号拉低时,SDM进入IDLE状态。对于Avalon ST x16和x32配置方案,主机必须将nCONFIG拉低,直到将nSTATUS拉低。如果主机未能将nCONFIG低位保持到nSTATUS采样低位,则配置可能会失败。

    3.当外部主机将nCONFIG再次拉高时,SDM启动配置。SDM将nSTATUS信号驱动为高,表示FPGA配置开始。SDM在MSEL总线在步骤1中指定的接口上接收配置位流。在整个配置过程中,AVST_READY可能不能用的,这将要求AVST_ VALID在六个周期内解除使能。
    4.SDM将CONF_ DONE信号驱动为高,表示SDM成功接收到比特流。
    5.当Intel Agilex拉高INIT_ DONE表示FPGA已进入用户模式时。GPIO引脚退出高阻状态。CONF_DONE和INIT_DONE之间的时间是不固定的。
    对于FPGA第一次配置,INIT_DONE在FPGA结构初始化后拉高,包括寄存器和状态机。
    对于HPS第一次配置,HPS应用程序控制CONF_DONE和INIT_DONE之间的时间。直到在HPS上运行的软件(如U-Boot)或操作系统(OS)启动配置后,FPGA配置并进入用户模式,才会断言INIT_DONE。

    重配置时序

    如果在通电后更改MSEL设置,则必须关闭Intel Agilex的电源。

    1.外部主机将nCONFIG信号驱动为低。nCONFIG信号必须保持低电平,直到设备将nSTATUS信号设置为低电平。
    2.SDM启动设备清理。
    3.当设备清理完成时,SDM将nSTATUS信号拉低。
    4.外部主机将nCONFIG信号驱动为高以启动重新配置。
    5.nSTATUS信号拉高,表示设备已准备好重新配置并开始重新配置。

    如果不监视nSTATUS信号,则将nCONFIG信号低脉冲至少1000 ms,以启动重新配置请求。

    重配置期间的可恢复错误

    1.SDM在指定的一段时间内将nSTATUS信号拉低,表示可恢复的配置错误。Intel Agilex设备可能不会拉高CONF_DONE,表示配置没有成功完成。。设备不会拉高INIT_DONE,表示配置没有成功。nCONFIG继续为高电平,直到nSTATUS返回高电平状态。如果JTAG配置期间发生错误,SDM不会改变nSTATUS信号的状态。
    2.SDM进入错误状态。
    3.如果nCONFIG信号驱动至低电平,则SDM进入空闲状态。通过在nCONFIG上驱动从低到高的转换,设备已准备好重新配置。您还可以按照设备断电顺序对设备进行断电循环。

    重配置期间的不可恢复错误

     

     在极少数情况下,配置错误或安全事件可能无法恢复。在这些情况下,SDM将nSTATUS驱动到低位并保持低位。必须重新上电才能重新启动重新配置过程。为了确保在所有重新配置情况下的错误恢复,英特尔建议您将系统设计为连续监控nSTATUS,并在需要时启用设备电源循环。请注意,在SDM RAM中出现双位ECC错误的情况下,nSTATUS也被断言为低并保持低。

    Power-On状态

    •Intel Agilex电源遵循《英特尔Agilex功率管理用户指南》中“英特尔AgilexDevices上电顺序要求”一节中的指导原则。
    •在电源达到正确的工作电压后,上电复位(POR power-on reset)生效。在电源达到工作电压之前,外部电源斜坡不得低于最小斜坡率。
    •在上电阶段,内部电路将SDM_ IO0、SDM_8、SDM_16拉低。内部电路将其余SDM_ IO引脚拉至弱上拉。
    •POR后,内部电路还会将所有GPIO引脚拉至弱上拉,直到设备进入用户模式。
    •在上电和下电期间,SDM和HPS组中的所有I/O引脚处于未知状态。
    •通电和断电期间任何点的I/O引脚输入信号不应超过存储体I/O缓冲器电源轨。

    SDM Startup状态
    •SDM在上电期间对MSEL引脚进行采样。
    •如果MSEL设置为JTAG,SDM将保持在启动状态。
    •SDM运行存储在片上引导ROM中的固件,并进入空闲状态,直到主机将nCONFIG驱动到高位。在所有时钟稳定之前,主机不应将nCONFIG驱动到高位。

    Idle状态

    •SDM保持空闲状态,直到外部主机通过将nCONFIG引脚从低驱动到高来启动配置。或者SDM在退出错误状态后进入空闲状态。

    FPGA configuration状态
    •SDM收到配置启动请求(nCONFIG=1)后,SDM将nSTATUS引脚驱动到高电平来发出配置开始的信号。
    •接收到配置数据后,SDM执行身份验证、解密和解压缩。
    •在重新配置流程中:
            -如果重新配置后触发上电复位(POR),则引导ROM在退出POR后加载固件。
            -对于由nCONFIG low脉冲触发的重新配置,SDM检查更新的固件并与现有固件进行比较。
    •如果两个固件相同,SDM将继续配置流程。如果固件不同,SDM将转换到与位流一起提供的固件。
    •配置期间和用户模式下,nCONFIG引脚保持高电平。主机持续监控nSTATUS引脚以查找配置错误。
    •在设备配置期间,电源管理活动正在进行。有关更多信息,请参阅《英特尔Agilex电源管理用户指南》。
    •SDM在成功接收完整比特流后将CONF_DONE拉高。
    •CONF_DONE引脚向外部主机发送比特流传输成功的信号。

    Failed FPGA Configuration状态
    •nSTATUS引脚上的低脉冲表示配置错误。
    •发生内部设备擦除,随后出现需要重新配置的错误。
    •低脉冲指示错误后,配置停止。nSTATUS引脚保持高电平。
    •发生错误后,SDM将nSTATUS驱动到低位,而外部主机将nCONFIG驱动到低位。
    •在nSTATUS引脚恢复到初始预配置低状态后,设备进入空闲状态。

    用户模式
    •初始化内部寄存器后,SDM将INIT_DONE引脚驱动为高电平,并将GPIO引脚从高阻抗状态释放。设备进入用户模式。在CONF_ DONE拉高后,并INIT_DONE拉高之前,部分设备开始进入用户模式。INIT_DONE拉高表示整个设备进入了用户模式。英特尔要求您在设计中包含重置版本。使用重置版本Intel FPGA IP的nINIT_DONE输出将应用程序逻辑保持在重置状态,直到整个FPGA结构处于用户模式。设计中未包含此IP可能会导致间歇性应用程序逻辑故障。
    •在用户模式下,nCONFIG引脚应保持高电平。
    •您可以通过将nCONFIG引脚从低驱动到高来重新配置设备。

    设备清理
    •在设备清洁状态下,设计停止运行。
    •设备清除所有配置数据的零点。
    •Intel Agilex设备驱动CONF_ DONE和INIT_DONE为低。
    •设备清理完成后,SDM将nSTATUS引脚驱动至低位。

    第二章

    MSEL对应关系 

    第三章

     

     

    SDM_IO对应图

    第五章 信号说明

    nCONFIG

    nCONFIG引脚是SDM的专用输入引脚。nCONFIG有两个功能:
    •推迟初始配置
    •启动FPGA重新配置

    nCONFIG引脚从低电平到高电平的转换表示配置或重新配置请求。nSTATUS引脚指示设备准备好启动FPGA配置。
    配置源只能在具有与nSTATUS相同的值时更改nCONFIG引脚的状态。当Intel Agilex设备就绪时,它会驱动nSTATUS跟随nCONFIG。
    主机应将nCONFIG驱动至低位,以启动设备清洁。则主机应将nCONFIG驱动至高位以启动配置。如果主机在配置周期期间将nCONFIG驱动到低位,则该配置周期停止。SDM将开始新的配置周期。

    nSTATUS

    nSTATUS具有以下两个功能:
    •作为对nCONFIG的确认。
    •表现为错误状态信号。监控nSTATUS以识别配置故障非常重要。

    对于PR故障或使用JTAG配置方案的故障,nSTATUS不会变低。

    通常,英特尔Agilex设备会将nSTATUS的值更改为nCONFIG的值,但出现错误后除外。例如,在POR之后,nSTATUS在nCONFIG断言之后进行断言。当主机将nCONFIG驱动为高时,Intel Agilex设备将nSTATUS驱动为高。
    在以前的设备系列中,取消对nSTATUS的断言表示设备已准备好进行配置。对于Intel Agilex设备,在使用Avalon ST配置方案时,在Intel Agilex设备将nSTATUS驱动为高后,您还必须监视AVST_READY信号,以确定设备何时准备好接受配置数据。
    如果在配置过程中发生错误,nSTATUS会断言。脉冲范围从0.5ms到10ms。
    nSTATUS断言与数据错误检测异步。英特尔Agilex设备不支持错误后自动重启配置选项。
    以前的器件系列将nSTATUS实现为具有弱内部上拉的开放漏极。Intel Agilex始终驱动nSTATUS。因此,您无法将Intel Agilex nSTATUS信号与早期设备系列中的nSTATUS数据线连接。
    当V(CCIO_SDM)。

    CONF_DONE and INIT_DONE

    对于Intel Agilex设备,CONF_ DONE和INIT_DONE。
    以前的器件系列将CONF_ DONE和INIT_DONE若上拉。CONF_ DONE信号指示配置比特流被成功接收。INIT_ DONE引脚指示设备在设计范围内运行。
    在当前实现中,无法将Intel Agilex CONF_DONE或INIT_DOEN信号与以前设备系列的nSTATUS信号连接。否则,CONF_ DONE和INIT_DONE。如果将CONF_DONE和INIT_DONE分配给SDM_。确保在“英特尔Quartus Prime软件”或“英特尔Quartus Prime设置文件”(.qsf)中指定这些引脚。CONF_ DONE和INIT_。CONF_DONE在设备完成接收配置数据时断言。当设备进入用户模式时,INIT_DONE断言。

  • 相关阅读:
    京联易捷科技与劳埃德私募基金管理有限公司达成合作协议签署
    latex公式及表格识别
    基于consul的服务注册与消费案例
    花费三个月整理的MySQL系列文档 诚意之作 看完不亏
    微信小程序clearInterval无法关闭时间间隔器问题解决
    狂神说MybatisPlus学习笔记
    学习Rust第14天:HashMaps
    Vivado下PLL实验
    linux中的input设备(转)
    VScode远程root权限调试
  • 原文地址:https://blog.csdn.net/u013445609/article/details/126298384