HPS SoC引导指南 - Cyclone V SoC开发工具

ID 683265
日期 1/27/2016
Public

1.2.1.1. Boot ROM

当处理器从复位释放,HPS引导过程开始,并跳转到位于Boot ROM的地址空间的复位矢量地址。

通常,Boot ROM的主要职责是:

  • 检测所选引导源
  • 执行最少量的HPS初始化
  • 从Flash加载下一引导阶段(通常是Preloader)到 OCRAM,并跳转到OCRAM。

Boot ROM行为受BSEL和CSEL选项影响,也会如后文中将介绍的受到Sytem Manager(针对RAM引导)中寄存器的影响。

由于对于下一引导阶段储存在Flash中的情况,Boot Rom可以读取多达四种不同映像:

  • 冷复位时,Boot ROM一般从第一映像开始,并检查CRC。 如果CRC正常,那么Boot ROM将控制权传递CRC。如果CRC不正常,Boot ROM尝试下一映象,以此类推。在映像控制传递前,Boot ROM更新寄存器 sysmgr.romcodegrp.initswlastld 的映像索引。
  • 热复位时,Boot ROM 在寄存器sysmgr.romcodegrp.initswstate 中查找特殊值(Magic value)0x49535756。如有该值,说明之前的预加载器执行正常,并再次加载和执行。 如果没有,说明之前预加载不正常,Boot ROM将前进至下一映像并增加sysmgr.romcodegrp.initswlastld
  • 如果全部映像加载失败,Boot ROM将尝试返回FPGA映像。Watchdog继续复位Boot ROM,但Boot ROM将不再从Falsh引导直至下一次冷复位。
注: BootROM 需要Flash在映像开端加载一个特殊头(header)。同时,该头包含一个用来确认映像的校验和。 可以使用SoC EDS中的mkpimage 工具为映像附加该头。