描述
ZYQ-7000平台受到哪些影响?
任何ZYQ-7000平台,使用大于16MB的QSPI闪存来引导这些配置中的任何一种:单、双堆叠、双并行。
注:具有两个16MB QSPI闪存的系统在双堆叠或并行配置(32 MB总计)不受此要求的影响。
对于ZYQ-7000支持的QSPI器件,请查看(赛灵思解答50991).
背景
ZYNQ QSPI控制器限制为3字节寻址,因此只有当它驻留在闪存的第一16MB(16MB是单个QSPI芯片的最大可寻址性)时,才可以通过BooTROM获取引导。
如果使用大于16MB的QSPI闪存,那么为了访问闪存超过16MB的部分上的数据,软件驱动程序(独立的,U-Bug,Linux)需要将存储第四字节的3字节地址扩展到特定于供应商的QSPI寄存器中,称为“扩展地址寄存器”。
这将由2013.3个/ 14.7个软件驱动程序和Xilinx工具支持。
扩展地址寄存器是粘性的,这意味着只有外部复位事件(如闪光灯的电源周期或Flash的外部复位)才能清除它。
在QSPI闪存的电源周期或外部复位之后,恢复时间在访问器件之前需要期满(详情请参阅QSPI Flash数据表)。
重置考虑
在所有系统重置上调用BooTROM:
- 外部引脚
- 外部引脚(SRST)
- 系统SW复位(软件设置的SLCR位)
- SWDT,AWDTx(看门狗计时器)
- 安全锁定(从BooTROM)
- 系统调试重置(JTAG)
在系统重置时,扩展地址寄存器可能为非零(通过读/写操作修改,该读/写操作针对的是闪存AT & Gt;16MB的一部分)。
BooTROM不知道QSPI扩展地址寄存器,因此不能清除它,这导致加载加载失败。
注:有关ZYQ-7000 SOC的所有问题,请参阅ZYQ-7000 SOC解决方案中心(赛灵思解答52512).
解决方案
为了解决这种情况,Zynq和QSPI闪存重置都需要一起管理。
在任何重置(POR或热重置),外部SRST必须应用于Zynq,QSPI必须允许恢复之前断言SRST。
可以使用外部实体(例如CPLD)来执行管理:
检测所有ZYNQ平台重置
为此需要使用专用的PS MIO(UsSerio),因为ZYNQ上没有输出引脚来指示所有的热复位事件。
该板必须被设计为使用高拉力或拉下拉高或Low。
fsbl将其拉向另一方向。这保证了在任何随后的热复位之前,信号将被驱动Low。
CPLD监控PARIGIN、SRTSTIIN和USERIO IO,并驱动PARZYZYQ、SRTSYZYNQ和QSPILITRES/QSPILPOWIGEN EN。
注:在图中,SRTSTIN是板上所有SRST的或全部,包括JTAG SRST线(例如可以从调试器声明)。
使用SrSTYZYNQ或PARZY-ZYNQ保持ZYNQ复位
使用SRSTYZYNQ的优点是将热重置转换为另一个热重置;因此调试寄存器,因此保持完整。
应用需求可能会使用PORZYZYNQ进行授权。
重置QSPI闪存
如果QSPI闪存具有复位引脚,则CPLD驱动它(QSPILY RESET)。
如果它没有它,CPLD控制QSPI闪光灯功率轨(例如,通过板上的FET)(QSPILPOWIGEN EN)。
取决于电源轨相对于复位的恢复时间,尽管复位引脚可用,但使用功率轨可能是有利的。
任何正在进行的写入或擦除都可能导致闪存损坏。
更高级别的软件/文件系统需要考虑到这种可能性。
正确处理SRSTYZYNQ重叠的PARIGIN和SSTIGIIN
如果在该逻辑断言SRSTYZYNQ时发生了PARIGIN和SRSTIGIN中的任一个或两个,则必须遵循TRM准则,以正确的顺序断言和断言SrSTYZYNQ/PARZY-ZYNQ。
参见第2.2.4节重置要求ZYNQ TRM,以及(赛灵思解答52847).
释放Zynq重置
CPLD逻辑在复位时保持ZYNQ,直到QSPI闪存可用(恢复时间已经过期,更多的细节见QSPI闪存数据表)。
注:BooTROM将访问PSPAZYNQ发布后的QSPI(驱动器CS激活)3.2毫秒(上升沿)。
BooTROM引导搜索
此时,BooTROM开始寻找QSPI闪存的第一个16MB(扩展地址寄存器为零)的引导。
笔记:
1)有助于设计CPLD逻辑的一些额外的考虑可以在第26章的“复位系统”中找到。ZYQ-7000 SOC技术参考手册.
也见(赛灵思解答52847)用于SRST和POR信号的测序。
2)当从大于16MB的QSPI引导时,可以找到其他的考虑因素。ZYQ-7000 SoC软件开发指南.
没有回复内容