仅对英特尔可见 — GUID: lro1418586922520
Ixiasoft
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 工具为映像附加该头。