仅对英特尔可见 — GUID: sfo1410070149016
Ixiasoft
1.3.1. 引导选择
引导选择(BSEL)管脚提供多种获得第二阶段引导映像的方法。冷复位中,引导源由安全引导熔丝和BSEL管脚组合决定。当出现冷复位时,这些熔丝值和BSEL管脚值被发送到HPS的安全管理器模块中。当HPS从复位中释放时,引导ROM在系统管理器中读取bootinfo寄存器以确定引导源。
注: 如果fpga_boot_f熔丝熔断, 则BSEL管脚被旁路且HPS只能从FPGA引导。此外,时钟选择(CSEL)熔丝值被忽略且时钟配置由FPGA控制。该配置允许HPS从FPGA中已加密的用户代码引导。如果FPGA是引导源,则引导ROM代码不为从闪存引导配置任何引导特定HPS I/O。如果fpga_boot_f 熔丝未断,则根据BSEL管脚确定引导源。 如果BSEL管脚被用于确定引导源,那么以下表格罗列了分配给每个编码的闪存器件。
注: 如果要求从FPGA引导(BSEL[2:0]=0x1), 那么您必须确保HPS保持在复位中直到FPGA已经被完全编程。否则,引导ROM可能会错误地读取由bootinfo寄存器确定的引导源。握手信号f2h_boot_from_fpga_ready和f2h_boot_from_fpga_on_failure表示在从FPGA到HPS中,FPGA的就绪状态。必须拉高f2h_boot_from_fpga_ready信号以表示就绪状态。请参阅"Instantiating the HPS Component"章节以了解更多关于FPGA引导握手(handshake)信号的信息。
注: 缩写BSEL和BOOTSEL可在定义引导选择管脚时互换使用。
BSEL[2:0]值 | 闪存器件 |
---|---|
0x0 | 已保留 |
0x1 | FPGA(HPS-to-FPGA桥接) |
0x2 | 1.8 V NAND闪存 |
0x3 | 3.0 V NAND闪存 |
0x4 | 1.8 V SD/MMC有外部收发器的闪存 |
0x5 | 3.0 V SD/MMC有外部收发器的闪存 |
0x6 | 1.8 V quad SPI闪存 |
0x7 | 3.0 V quad SPI闪存 |
注: 如果BSEL值设置为0x4或0x5,则可能需要一个外部转换收发器以供应电平转换及隔离,因为SD卡接入SD/MMC控制器时必须在不同于控制器接口的电压下操作。请参阅SD/MMC Controller章节了解更多信息。
典型引导流程是:引导ROM代码在闪存器件中找到第二阶段引导加载器映像,并把它加载到片上RAM,然后执行。热复位后,可指示引导ROM代码找出RAM中的映像并执行。
HPS闪存源可存储各种文件类型,如:
- FPGA编程文件
- 第二阶段引导加载器二进制文件(最多四个拷贝)
- 操作系统二进制文件
- 应用文件系统
HPS可以认证及解密闪存中的第二阶段引导加载器映像。从HPS片上RAM的直接引导通常是未认证的明码,尽管它可能有一个选择性的CRC, 如果需要。
BSEL值为0x1时,FPGA被选作该引导的引导源。当使能fpga_boot_f熔丝时,这个选择就不再是永久的。在这两种情况下, CSEL熔丝均被忽略, 且HPS保持在复位中,直到上电并编程FPGA以防止引导ROM错误解读引导源。
如果选择HPS闪存接口加载引导映像, 则引导ROM使能并配置该接口,然后把引导映像加载到片上RAM中,确认它并将软件控制传递到第二阶段引导加载器。
如果FPGA架构为引导源,引导ROM代码等待器件的FPGA部分处于用户模式,并准备执行代码,然后把软件控制传递到FPGA RAM中的第二阶段引导加载器。