发 帖  
原厂入驻New
[问答] 请问系列7的后备和加密失败的解决办法?
94 FPGA
分享
你好
这个问题是一个跟进和前一个问题:
http://forums.xilinx.com/t5/Configuration/Fallback-and-Encryption-in-Kintex7/td-p/487640
但是我注意到一旦问题被解决,就不会再次解决,所以我从上面提出了一个问题。
我们正在尝试生产可以更新内场的产品。
我们希望使用比特流加密来防止/防止在传输过程中(以及其他事情)窥探。
我正在尝试的是有一个附加的存储设备,其中有三个图像。
第一个图像@ 0x0000000只是设置WBSTAR寄存器,然后触发IPROG。
工作图像中的第三个图像,它是第一个图像跳转到的主图像。
这就是我称之为正常的日常操作。
次要操作模式是现场重新编程。
第3个图像具有重写SPI存储器的能力。
有一个序列,它从内存中获取一个全新的比特流图像,并写入从最初启动的SPI内存的完全相同的位置。
一旦FPGA完全将新映像写入SPI,它就会写入WBSTAR寄存器,然后触发IPROG。
FPGA瘫痪,然后从SPI获取全新的图像,并持续到今天。
(注意,在正常操作中,甚至可能不需要写入WBSTAR寄存器,但我喜欢明确,以防万一)。
然后是失败模式。
由于任何原因,新图像中存在损坏,CRC,不正确的加密密钥,无论什么,无关紧要,空间都是无用的。
在这种情况下,我希望FPGA回退到第二个图像。
基本图像,也经过加密,提供足够的功能,可以将新的校正图像重写到第三个图像位置。
一旦它这样做,WBSTAR被写入(对于第三个图像位置)并且IPROG被触发并且希望这次很好,新图像被上传并且它可以工作。
现在,基于上一篇文章的内容,即使加密图像,或者特别是加密图像,也无法回退加密图像。
理想情况下,我希望从损坏的图像3回退到基本图像2,但我看不出这是怎么回事。
我可以看到,如果损坏的图像3允许回退到图像1并且图像1具有足够的智能,例如读取BOOTSTS寄存器,一旦确定跳转到3时出错,就以编程方式跳转到图像2。
所以问题是,一旦图像没有正确加载,在跳转到图像3开始位置之后,如何回退到任何地址。
我已经厌倦了图像1上的“set_property BITSTREAM.CONFIG.tiMER_CFG 0x00004fff”,但在尝试获取图像3后,它似乎对超时没有任何影响。
0
2020-6-5 08:15:56   评论 分享淘帖 邀请回答
11个回答
当回退发生在黄金图像时,为什么黄金图像逻辑不包括用wbstar写的icap状态机和iprog跳转到第二图像位置。
您可以检查多引导参考设计中的任何一个用于多引导触发的icap用法。
--Krishna
2020-6-5 08:32:40 评论

举报

嗨克里希纳
谢谢回复。
我实际上已经编写了部分代码。
当我破坏图像时,我无法让fpga回落。
我可以看到FPGA在黄金图像中启动(我已经人为地推迟了它,以便我可以看到它(带有LED))然后它跳转并挂起。
后备设置是多重启动还是加密图像的功能?
先前的帖子再次说回退是不可能的。
2020-6-5 08:46:21 评论

举报

是黄金图像尝试触发的第二个图像是加密的吗?
--Krishna
2020-6-5 08:55:13 评论

举报

是的所有图像都是加密的
2020-6-5 09:08:07 评论

举报

好的,我取得了一些进步。
我发现如果启用加密,vivado将忽略您为后备设置的内容。
所以在我的xdc中我有这些设置:
set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design] set_property BITSTREAM.CONFIG.TIMER_CFG 0x00004fff [current_design]
在查看比特流后,我发现了这些命令。
第一个是写入MASK寄存器,第二个是写入0x80000040到CTL0寄存器,第10个是配置回退,写入“1”到此位置禁用回退:
3000C001800000403000A00180000040
我已经编辑了比特流,所以我写了一个'0'到那个位置,我得到一个后备,但它总是后退。
如果图像完美或损坏并不重要,它总是会倒退。
我的黄金图像已被写入,以便在回退的情况下跳转到备用地址(可以工作)。
至于它为什么总是倒退,而不是CRC或加密效果,我不确定,它是FPGA的一个特性,在加密的情况下如果启用了回退,它将只是后退。
或者配置计时器太小。
当我离开我的第一个图像时,我将其设置为一个较大的值,但在下一个图像时是否会重置,我应该在比特流中添加显式写入配置计时器。
这一直很烦人。
Vivado没有警告你没有启用回退(至少从比特流生成的角度来看)只有当我回到ISE时,我才会看到如果启用加密则允许回退被启用的情况。
在文档中捕获的加密是否缺乏回退?
而且为什么我不确定安全漏洞,也许我错过了一些东西。
2020-6-5 09:25:08 评论

举报

嗨Davekeeshan。
当fpga回退到黄金映像时,你检查了状态寄存器,是什么触发了这个回退。
http://www.xilinx.com/support/answers/34909.html。
--Krishna
2020-6-5 09:44:44 评论

举报

嗨克里希纳,除了主要的支持页面之外,这个链接对我来说无处可去。
至于状态寄存器,这是我能够通过影响拉出来的(vivado不支持这种类型的阅读是一种痛苦)。
接近我在FPGA内部可以看出加密和回退是互斥的。
我已经观察到它是真正的后备,因为我现在已经添加了对CFG_TIMER寄存器的写入,并且如果我更改此寄存器中的大小则会产生敲击效应以及回退到黄金图像所需的时间(正如预期的那样)
)。
注意我可以使用相同的比特流图像,只需一个比特更改,它可以加载加密图像,也可以仅根据该比特进行回退。
如果在我需要正式了解的任何配置中确实无法实现回退和加密,我可能需要升级此问题。
关于这个主题的一些论坛帖子不是找到这些东西的最佳地方。
'1':读取引导寄存器内容...... [0]
VALID_0 - 错误或启动结束(EOS)检测:1 [1] FALLBACK_0 - FALLBACK TRIGGERED RECONFIGURATION:1 [2] IPROG_0 - 内部WARMBOOT(IPROG)触发重新配置:0 [3] WTO_ERROR_0 - 看门狗超时错误:0 [4
] ID_ERROR_0 - FPGA器件IDCODE错误:0 [5] CRC_ERROR_0 - 循环冗余校验(CRC)错误:0 [6] WRAP_ERROR_0 - BPI闪存地址计数器绕错误:0 [7] HMAC_ERROR_0 - HMAC错误:0 [8] VALID_1
- 错误或启动结束(EOS)检测:1 [9] FALLBACK_1 - FALLBACK TRIGGERED RECONFIGURATION:0 [10] IPROG_1 - 内部WARMBOOT(IPROG)触发重新配置:1 [11] WTO_ERROR_1 - 看门狗超时错误:1 [12]
ID_ERROR_1 - FPGA器件IDCODE错误:0 [13] CRC_ERROR_1 - 循环冗余校验(CRC)错误:0 [14] WRAP_ERROR_1 - BPI闪存地址计数器绕错误:0 [15] HMAC_ERROR_1 - HMAC错误'1':读取状态寄存器
内容... [0]
CRC错误:0 [1] DECRYPTOR ENABLE:1 [2] PLL锁定状态:1 [3] DCI匹配状态:1 [4]启动结束(EOS)状态:1 [5] GTS_CFG_B状态:1 [6] GWE
状态:1 [7] GHIGH STATUS:1 [8] MODE PIN M [0]:1 [9] MODE PIN M [1]:0 [10] MODE PIN M [2]:0 [11] INIT_B内部信号状态
:1 [12] INIT_B引脚:1 [13]完成内部信号状态:1 [14]完成引脚:1 [15] IDCODE错误:0 [16]安全错误:0 [17]系统监控超温警报状态:
0 [18] CFG启动状态机阶段:0 [19] CFG启动状态机阶段:0 [20] CFG启动状态机阶段:1 [21]保留:0 [22]保留:0 [23]保留:0 [
24]保留:0 [25] CFG总线宽度检测:0 [26] CFG总线宽度检测:0 [27] HMAC错误:0 [28] PUDC_B PIN:0 [29]坏包错误:0 [30] CFGBVS PIN
:0 [31]保留:0
2020-6-5 09:58:44 评论

举报

剂量这意味着加密比特流不能做后备。
所以不能在现场更新中做安全吗?
2020-6-5 10:18:36 评论

举报

@davekeeshan
我为提出一个老话题而道歉。
但是你有没有得到官方声明是否有可能同时使用加密和多重启动/后备?
谢谢。
2020-6-5 10:24:43 评论

举报

@ aakx87
我没有得到官方回复,但我确实最终得到了它。
我不再在那家公司工作。
很难证明它有效。
我认为当时生成比特流的vivado版本存在问题,但那是在2014.2时间框架之后。
2020-6-5 10:35:18 评论

举报

@davekeeshan
感谢您的时间 - 当我们收到新的原型并看看它是否有效时,我将不得不尝试一下。
2020-6-5 10:47:42 评论

举报

只有小组成员才能发言,加入小组>>

98个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表