其中配置PL时的比特流既可以是已经经过AES-256加密的比特流,也可以是先经过PS先进行解密后成为明文比特流送到PL内,这个过程的保密性由用户选择使用。
在保密ROM引导阶段如果PS完整性鉴定失败,CPU就立即断言PROG_B信号而清除PL内容,同时发出一个加密复位信号,这使PS内部的RAM和寄存器进行复位,然后CPU进入睡眠模式,系统只有重复上电才能复位。PL配置发生在BOOT的第二阶段,这个过程完成可以由用户选择自己的方法在任何时间内来配置一次或多次,并不需要一定按缺省的PL引导过程来配置PL部分。
四、启动模式引脚
ZYNQ器件有5个启动模式信号mode[4:0],用来指出从哪里启动,是否是JTAG模式,PLL是否旁路等。另外有两个电压模式信号vmode[1:0]用来指明MIO BANK的电压模式,vmode[1:0] 信号和mode[4:0] 信号通过上拉和下拉来确定电平值,上拉和下拉电阻建议为20k欧姆,上拉是连接到VCCO_MIO0电压,下拉是连接到地。系统在释放PS_POR_B复位脚后这些启动模式引脚信号会被采样3个PS_CLK时钟用来确定启动方式。vmode[1:0] 信号和mode[4:0] 信号对应的I/O管脚为MIO[8:2],各信号具体含义如下:
① Mode[0] 用来指明是否是JTAG 模正。
② Mode[3:1]用来选择启动源,是从NOR Flash还是从NAND Flash还是从QSPI启动。
③ Mode[4]用来使能PLL。
④ Vmode[1:0] 用来配置I/O BANK电压。
这些信号和MIO管脚的对应关系如下表表示:
注:上表中X表示不关心。
实际设计中,由于MIO管脚数量有限(只有54个),且只分为两个BANK(MIO Bank 0对应管脚为PS_MIO[15:0],PS_CLK,PS_POR_B;MIO Bank 1对应管脚为PS_MIO[53:16],PS_VREF_MIO和PS_SRST_B),并不建议系统设计为从并行的NOR Flash启动,因为这种方式NOR Flash占用的MIO管脚数量大多(大于40个管脚),系统设计为从NAND Flash或QSPI启动都可以,这两种方式占用的MIO管脚数量要少些,NAND Flash的优点是容量比较大,缺点是读写速度要慢些(典型速度 10MB/s), QSPI也是一种NOR Flash,不过接口是四线串行接口,可以获得比较高的读写速度(典型速度 50MB/s),如果系统希望从其它方式如USB, Ethernet, SD/SDIO等方式启动,这都需要用户在第一级启动映像内自行设计启动引导代码。
以上抛砖引玉,欢迎大家补充说明,主要参考文献为Zynq-7000 Extensible Processing Platform Technical Reference Manual,大家可到XILINX官方网站上下载来仔细研究。