Arria 10 SoC引导用户指南

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

1.2.3.1.1. 典型引导流程(非安全)

非安全第二阶段引导过程通常遵循一个流程,如下图所示。

图 8. 典型的第二阶段引导加载器流程(非安全)

低级别初始化步骤包括重配置或禁用L4看门狗0计时器,使指令缓存和分支预测器失效,重映射片上RAM到存储器最低区域,并设置代码区。

进入第二引导阶段后,L4看门狗0计时器是活跃的。第二阶段引导加载器可禁用,重配置,或保留看门狗计时器不被改变。一旦复位后被使能,看门狗计时器就不能被禁用,只能暂停或复位。

之前已被引导ROM代码使能的指令缓存和分支预测器必须被禁用。如果第二阶段引导加载器使能和使用数据缓存,则在使能之前须初始化所有级别的数据缓存。

第二阶段引导加载器必须重映射异常矢量表,因为当它开始执行时,异常矢量仍然指向引导ROM中的异常处理器。通过设置系统互连重映射字节0到1,片上RAM反射到存储器映射的最低区域。这次重映射后,异常矢量使用引导加载器映像中的异常处理器。

下图显示了重映射之前和之后的存储器映射。

图 9. 重映射片上RAM

第二阶段引导加载器能重配置所有HPS时钟。在时钟重配置期间,受时钟改变的影响,引导加载器置位HPS外设复位。

在第二阶段引导加载器中,为HPS分配I/O是IOCSR配置的一部分。实际上,包含I/O分配的比特流已经被发送到器件以作为第二阶段引导器中初始化代码的部分。 如果FPGA架构和I/O还未经FPGA配置,且HPS需要访问SDRAM, 则您应该编程HPS以使用完整的或者早前I/O配置方法,从而配置共享的或硬核存储控制器I/O。关于完整细节或早前发布的I/O配置详情,请参阅Arria 10硬核处理器系统技术参考手册“引导和配置”附录中的"FPGA Configuration" 部分。

第二阶段引导加载器在下个阶段引导器件中查看镜像映射的引导映像验证数据及校验和,以寻找有效的下个阶段引导映像。一旦确认,则第二阶段引导加载器把下个阶段引导映像(OS或应用映像)从下个阶段引导器件加载到SDRAM。

在软件将控制传递到下个阶段引导软件之前, 第二阶段引导加载器把有效值(0x49535756)写入到系统管理器的 romcode_initswstate寄存器中。该值表示片上RAM中有一个有效的引导映像。romcode_initiswlastld寄存器保存上一次的第二阶段引导加载器软件映像索引,该索引由引导ROM从引导器件加载。当发生热复位时,如果BSEL值和上次引导一样,则引导ROM加载romcode_initswlastld寄存器指示的映像。