ZNYQ-7000 SOC——使用NAND/QSPI的启动时间-Xilinx-AMD社区-FPGA CPLD-ChipDebug

ZNYQ-7000 SOC——使用NAND/QSPI的启动时间

描述

该应答记录包含与NAND或QSPI存储器器件相关的ZYQ-7000 SOC引导的信息。

该文档特别强调了在不同引导阶段实现更好的定时和带宽结果的设置和注意事项。

为了获得对配置的引导时间的估计,请使用附加的电子表格。

解决方案

引导时间

闪速存储器的带宽因不同厂商的下列配置而变化;这会影响启动时间。

有关Xilinx工具支持的器件的大小和类型的详细信息,请参阅(赛灵思解答50991). 下图显示了构成ZYQ-7000器件启动时间的主要组件。

PS和PL图像串行加载

图片[1]-ZNYQ-7000 SOC——使用NAND/QSPI的启动时间-Xilinx-AMD社区-FPGA CPLD-ChipDebug

  1. 功率斜坡时间(取决于电源)
  2. 锁相环锁定时间
  3. 预定时间
  4. 加载图像

此应答记录不包括功率斜坡时间和PLL锁定时间。加电斜坡时间取决于所用电源的类型。PLL锁定时间可以达到上千个周期,但仍然是微秒级,并且不会显著影响整个引导时间。

非安全引导

关于非安全引导的细节可以在ZYQ-7000 SoC技术参考手册的第6章中找到。在非安全引导中,如果使用单独的电源,则可以关闭PL。如果PL和PS之间的电源共享,那么PL也将被通电。在这两种情况下,BooTROM都不等待PL准备就绪。对于TPOR编号,请参阅BooTROM计时部分中的TPOR表。一旦FSBL被复制到OCM,它是用户代码,它就接管了。BooTROM具有在使用RSA公钥认证之前对非安全FSBL进行认证的能力。

安全引导

在安全引导中,所有图像分区或一些图像分区都被加密。为了引导安全,必须对FSBL进行加密。详情请参阅ZYQ-7000 SoC技术参考手册第6章和第32章。由于FSBL是安全的,可Program逻辑中的AES/SHA引擎用于对图像进行解密和认证。要做到这一点,BooTROM必须等待PL准备就绪,它可以包括PL TPOR和/或房屋清洗。BooTROM还能够在使用RSA公钥认证之前执行安全FSBL认证。

同步定时

请与Xilinx FAE联系,以获得您计划使用的接口的BooRTM时序。

BooTROM在PLL锁定之后开始执行代码,这是在PoR断电后(电源复位)发生的。它包括一切,直到控制给予FSBL。BooTROM代码可以分解为以下几点:

  1. 启动代码执行
  2. 将FSBL形式的Flash器件复制到OCM
  3. BooRTM代码的CRC校验(如果启用)
  4. 可Program逻辑的TPOR(安全引导)
  5. AES/SHA解密与认证(安全引导)
  6. RSA身份验证(如果启用)

除了启动代码执行和将FSBL复制到OCM中,其余的列表都是可选的,如果启用,则添加到BooTROM时间。

BooTROM码的CRC校验

在上电和复位序列完成之后,片上BooTROM开始执行。可选的EFUSET设置可用于在BooTROM上执行一个完整的128 KB CRC。在启动ROM上启用128KB CRC检查的细节可以在第32章中找到。ZYQ-7000 SOC技术参考手册. 在完整性检查之后,BooTROM读取引导引脚指定的启动模式设置。

可Program逻辑的TPOR

PL的TPOR是当器件首次通电时的电压斜坡时间。这只是发挥作用时,板/器件首次上电。如果板已经上电并且ZYQ-7000器件被复位,那么因为PL已经通电,TPOR就开始发挥作用了。下表指示PooTROM定时要考虑的PL TPOR值。

PS供电 PL供电的 安全的 TPoR(MS)
是的
是的 是的
是的 是的 是的 35/50**

*关于TPOR的详细信息参见ZYQ-7000 SOC数据表:直流和交流开关特性(DS187或DS191)

下列情况见上文表:

  • 在非安全引导中,当PS和PL都通电时,BooTROM不等待TPoR。BooTROM将FSBL加载到OCM中。然后,FSBL也可以开始配置PS。如果所有这些任务小于TPOR,并且用户打算加载PL比特流,那么用户需要等待直到PL准备好,这将在点PL通电后35/50毫秒。为了检查PL是否准备就绪,在Program比特流之前,用户代码需要检查DEVC状态寄存器中的PCFGGIN IT位。详细信息可以在PL配置节中找到。ZYQ-7000 SOC技术参考手册.
  • 在安全引导模式下,因为PL必须被通电,并且PL中的AES/SHA引擎用于对FSBL的解密和认证,所以BooTROM等待PL准备就绪。这包括在第一次上电时PL的TPOR。如果电路板已经被加电并且只有ZYQ-7000器件正在复位,那么因为TPL已经通电,TPOR不会进入画面。


AES/SHA解密与认证

AES/SHA解密和认证只能在安全引导模式下进行。为了在使用QSPI时执行AES/SHA解密和认证,器件配置块中的DMA将加密图像从闪存复制到器件配置引擎。在NAND的情况下,将图像复制到DDR中,然后在器件配置中的DMA将其从DDR复制到器件配置引擎进行解密和认证。对PotoTROM时间的最大影响是PL准备就绪的等待,如上所述。

RSA认证

BooTROM还具有在使用RSA公钥认证之前对非安全FSBL进行认证的能力。通过在PS EFUEST阵列中吹出RSA认证启用保险丝来启用此功能。当启用RSA认证时,BooTROM通过将FSBL加载到OCM开始,然后开始认证过程。如果认证通过,则非安全FSBL将开始执行。未能验证FSBL触发引导ROM的回退模式。如果没有找到新的FSBL,则器件进入安全锁定。在启用RSA认证的情况下,在FSBL加载到OCM之后,BooTROM启动认证过程。如果认证通过,则使用AES解密安全FSBL。未能验证FSBL会触发BooTROM的回退模式。如果没有找到新的FSBL,则器件进入安全锁定。

BooTROM优化

启动接口的BooTROM的默认设置非常慢。引导接口可以通过设置寄存器更快地运行。这些设置依赖于所使用的器件和电路板布局参数。下面的例子中所示的寄存器的优化值应该由正在使用的器件的供应商数据表获得。下面的示例显示了针对板上特定器件的NAND和QSPI接口的这些设置,因此这些设置可能不会为您的器件和板的优化设置。请使用它们作为可修改寄存器设置的参考。

这些寄存器,代表MIO多路复用器和闪存时钟,是BooTROM头的一部分。有关详细信息,请参阅第6章中的BooTROM头部分。ZYQ-7000 SOC技术参考手册.

NAND实例

NANDX8非安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF00148= 0x000 000 0921;//SMCl CKLYCTRL除法器=9(96 MHz,104NS)
设置。0xE000 0E014= 0x00 225133;//SMC SETIORY循环-2,1,1,2,1,3,3见下文*
设置。0xE000 0E018= 0x0.00亿;//SMC SETIOPMODE - 8位
设置。0xE000 0E010= 0x024000;//SMC DUNTHYCMD -写集RANS到NAND

*用于StIy循环的位:

T6~TYRR

γ-T5—Tyar

γ-T4-TY-CLR

γ-T3- TY-WP

γ-T2-TY-ReA

T1~TY-WC

γ-T0- TY-RC

有关详细信息,请参阅ZYQ-7000 SoC技术参考手册中SMC寄存器SETYROCKET(0xE000 0E014)中的位字段定义。

NANDX8安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF00148= 0x000 000 0921;//SMCl CKLYCTRL除法器=9(96 MHz,104NS)

NANDX16非安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF00148= 0x000 000 0921;//SMCl CKLYCTRL除法器=9(96 MHz,104NS)
设置。0xE000 0E014= 0x00 225133;//SMC SETIORY循环-2,1,1,2,1,3,3见下文*
设置。0xE000 0E018= 0x000 000 01;//SMC SETIOPMODE - 16位
设置。0xE000 0E010= 0x024000;//SMC DUNTHYCMD -写集RANS到NAND

*用于StIy循环的位:

T6~TYRR

γ-T5—Tyar

T4—TY-CLR

γ- T3-TY-WP

γ-T2-TY-ReA

γ1 T1-TY-WC

γ-T0- TY-RC

有关详细信息,请参阅ZYQ-7000 SoC技术参考手册中SMC寄存器SETYROCKET(0xE000 0E014)中的位字段定义。

NANDX16安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF00148= 0x000 000 0921;//SMCl CKLYCTRL除法器=9(96 MHz,104NS)

QSPI实例

非安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF00720= 0x000 000 0602;//MiooPiNo08- QSPI FB时钟,3.3伏
设置。0xF0014C= 0x00 000 0521;//LQSPILCLKYCCTL除法器=5(173 MHz)
设置。0xE000 0d000=0x800 23 8c1;//qSPI配置-2分频(86 MHz)
设置。0xE000 0D038=0x000 000 0;//QSPI回环-内部,0延迟。0xE000 0D0A0= 0x82FF04EB;//LQSPILFCF-QoRead模式,NuMnOxx/Mon

安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF0014C=0x000 000 0621;//LQSPILL CKLYCTRL除法器=6,(144 MHz)

双QSPI非安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF00720= 0x000 000 0602;//MiooPiNo08- QSPI FB时钟,3.3伏
设置。0xF0014C= 0x00 000 0521;//LQSPILCLKYCCTL除法器=5(173 MHz)
设置。0xE000 0d000=0x800 23 8c1;//qSPI配置-2分频(86 MHz)
设置。0xE000 0d038=0x000 000 020;//QSPI回环-内部,0延迟
//集。0xE000 0D0A0= 0xE2FF06EB;//LQSPILFCF-QoRead模式,NuMnOxx/Mon
设置。0xE000 0D0A0= 0xE2FF02EB;//LQSPILFCF-QoRead模式,WiBANN/跨


双QSPI安全寄存器初始化

登记/登记
设置。0xF800 0120=0x1F000 0200;// ARMYL CKLYCTRL除法器=2(433 MHz)
设置。0xF0014C=0x000 000 0621;//LQSPILL CKLYCTRL除法器=6,(144 MHz)

注释在引导器件上加载的图像的大小是128 KB。所使用的参考时钟频率为33.33兆赫。

加载图像

引导其余图像所需的时间取决于图像的大小和所使用的引导接口。为了得到应用程序启动时间的粗略估计,请在设计细节中提供信息。

设计细节

请收集以下细节,以获得使用附件电子表格的设计的预计开机时间。

模式 选择权 评论
引导类型 安全/非安全
ZYNQ器件 Z-7010/Z-7015/Z-7020/Z-7030/Z-7045/Z-7100
操作系统 裸金属/ Linux

如果已知,提供应用程序代码和/或Linux图像的大小,否则向您的FAE请求启动时间估计基于的默认大小。如果已知,提供下列信息:

  • 应用程序代码的大小
  • Linux内核、RAM磁盘、器件树和uBooz的大小
小贩 微米/横跨
引导器件 NAND/QSPI
器件配置

NAND:X8/X16
单/双叠加/双并联

电压 1.8V/3.3V
认证 NO/AES/RSA/AES+RSA 非安全性:NOR/RSA
安全:AES/RSA/AES+RSA
QSPI型 128MB或128MB
增压机CRC 启用BooTROM 128KB CRC校验

附件

关联附件

名字 文件大小 文件类型
ZYQ-7000 0BoToTimeTyMay估估计器QSPIN NANDYRV3.3.0.XLSM 106千字节 XLSM
请登录后发表评论

    没有回复内容