仅对英特尔可见 — GUID: kot1481305311138
Ixiasoft
5.1.6. 选择引导加载程序软件
Cyclone® V / Arria® V SoC引导流程包括如下阶段:
- Boot ROM
- Preloader
- Bootloader
- 实时操作系统或裸机应用程序
图 14. Cyclone® V / Arria® V SoC引导流程

所有 Cyclone® V SoC / Arria® V SoC应用程序都需要BootROM和Preloader阶段。GSRD使用U-boot和Linux,但自定义应用程序可能会实现不同的流程,例如使用Preloader直接加载裸机应用程序。
通常,Preloader的主要职责是:
- 执行其他HPS初始化
- 启动SDRAM
- 将下一个引导阶段从Flash加载到SDRAM并跳转到该阶段
目前,有两个不同的Preloader选项可用:
- SPL - U-Boot的一部分。随SoC EDS提供,使用GPL (Open Source) License
- MPL - 随SoC EDS提供,作为使用HWLibs (bare-metal libraries) 的实例。 使用BSD许可。
注: Preloader需要一个特殊的头(header)放置于下一阶段引导影响的开头。此外,该header包含一个用于验证映像的CRC值。可使用SoC EDS中的mkimage实用程序将该header附加到映像。
Bootloader的典型职责与Preloader相似,只是它不需要启动SDRAM。因为Bootloader已经置于SDRAM中,所以不受OCRAM大小的限制。因此,它可以提供很多功能,例如网络堆栈支持。
典型HPS系统中有许多寄存器,需要根据MPU 子系统中的给定配置,片上网络互连组件,SDRAM存储器,flash引导源和外设接口对他们进行设置。关于引导或初始化目的设置封装在如下位置:
- RBF File(s) -包含SDRAM的寄存器设置以及专用I/O和FPGA管脚配置。
- U-Boot源代码 - 用于其余设置
图 15. Preloader构建流程

注: 强烈建议使用bsp-editor生成Preloader。还建议(但不是必需)从相同源代码构建U-Boot。