ZYQ-7000 SoC的设计咨询——使用大于16MB闪存的Zynq和QSPI重置要求

描述

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。

有关流程的一个示例,请参见(赛灵思解答64011)QSPI重置示例当使用大于16MB闪存时。


注:在图中,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软件开发指南.

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-30 17:43:41 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它