Arria 10 SoC引导用户指南

ID 683735
日期 10/30/2015
Public
文档目录

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_readyf2h_boot_from_fpga_on_failure表示在从FPGA到HPS中,FPGA的就绪状态。必须拉高f2h_boot_from_fpga_ready信号以表示就绪状态。请参阅"Instantiating the HPS Component"章节以了解更多关于FPGA引导握手(handshake)信号的信息。
注: 缩写BSEL和BOOTSEL可在定义引导选择管脚时互换使用。
表 1.  用于引导源选择的BSEL值
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中的第二阶段引导加载器。