Arria 10 SoC引导用户指南

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

1.2.2. 第一阶段: 引导ROM

引导ROM代码大小为128KB,在片上ROM中位于地址0xFFFC0000到0xFFFDFFFF。该引导ROM代码的功能是确定引导源, 复位后初始化HPS,并跳转到第二阶段引导加载器。如果第二阶段引导加载器映像已经从闪存加载到片上RAM,那么引导ROM跳转到片上RAM的位置。引导ROM执行以下操作来初始化HPS:

  • 使能指令集缓存,分支预测器,浮点单元,以及CPU0的NEON矢量单元
  • 设置level 4 (L4)看门狗0计时器
  • 基于引导选择(BSEL)的设置配置专用管脚。
  • 初始化闪存控制器为默认设置
从内存引导时,引导ROM代码使用片上RAM的头32KB作为数据工作区。复位后该区域为引导ROM预留,直到引导ROM代码将软件控制传递到第二阶段引导加载器。最大的第二阶段引导加载器包括认证的大小是208KB和未认证的大小是224KB。对于RAM热引导或从FPGA引导,引导ROM代码不预留片上RAM的头32KB,且可放置您的用户数据于该区域并无需通过引导ROM重写入。
注: 引导ROM只初始化片上RAM使用的32KB部分。如果片上RAM中的第二阶段引导加载器需要ECC,那么您应该使能安全熔丝,以便在冷复位中清除全部的RAM。更多关于安全熔丝信息,请参阅Arria 10硬核处理器系统技术参考手册SoC安全章节。

CPU0退出复位状态时引导过程开始。引导ROM代码只在CPU0上执行。CPU1保持复位状态,直到被用户软件释放。CPU0从复位退出后就开始在复位异常地址执行代码。

引导ROM执行期间,时钟控制熔丝信息被自动发送到时钟管理器,存储器控制熔丝信息被自动发送到复位管理器,以及其它所有熔丝功能(认证,加密,私人或公共密匙源, hash功能)都存储在存储器映射的某个位置中供引导代码读取。正常操作中,引导ROM被映射到复位异常地址,以便代码在引导ROM中开始执行。

当CPU0退出引导ROM代码并开始执行用户模式时,引导ROM访问被禁用。 在CPU0执行的用户软件必须映射用户软件异常矢量到0x0(就是之前映射到引导ROM的异常矢量),如果需要就将CPU1从复位释放。CPU1从复位释放后,执行用户软件异常而非引导 ROM。