没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本文档提供有关引导流程,引导源器件以及如何为 Arria® 10 SoC 生成和调试引导加载器的综合信 息。 本SoC 引导用户指南详细介绍了以下几个方面: • Arria 10 SoC 系统支持的典型引导流程 • 可用的引导源器件及其配置信息 • 第一和第二引导阶段(U-Boot 或Unified Extensible Firmware 接口(UEFI)) 注意: 尽管本用户指南以U-Boot 为主要实例,但也介绍了作为第二阶段非通用公共许可 (non-GPL)引导加载器源的UEFI。请参阅“附录B:构建UEFI 引导加载器”了解更 多信息。 • 如何生成引导加载器以及配置引导源器件 • 如何构建引导加载器 • 调试引导加载器 • 关于引导存储器和SoC 开发平台的技术参考附件
资源推荐
资源详情
资源评论
Arria 10 SoC 引导用户指南
2015.10.30
UG-1171
订阅
反馈
本文档提供有关引导流程,引导源器件以及如何为 Arria
®
10 SoC 生成和调试引导加载器的综合信
息。
本 SoC 引导用户指南详细介绍了以下几个方面:
• Arria 10 SoC 系统支持的典型引导流程
• 可用的引导源器件及其配置信息
• 第一和第二引导阶段(U-Boot 或 Unified Extensible Firmware 接口(UEFI))
注意: 尽管本用户指南以 U-Boot 为主要实例,但也介绍了作为第二阶段非通用公共许可
(non-GPL)引导加载器源的 UEFI。请参阅“附录 B:构建 UEFI 引导加载器”了解更
多信息。
• 如何生成引导加载器以及配置引导源器件
• 如何构建引导加载器
• 调试引导加载器
• 关于引导存储器和 SoC 开发平台的技术参考附件
相关链接
附录 B: 构建 UEFI 引导加载器 (第38 页)
引导过程
典型引导流程
HPS 引导是一个多阶段的过程。每个阶段负责引导下一阶段。
第一阶段是引导 ROM 的执行。位于 HPS 的 ROM 代码使处理器从复位中退出,并将其置于一个
已知且稳定的状态,同时查找第二阶段引导加载器并将控制权传递到下个阶段。引导 ROM 代码
只识别第二阶段引导加载器,不识别任何潜在的后续软件阶段。 在此期间,引导 ROM 仍需要处
理任何错误情况。
控制权传递到第二阶段引导加载器时为下一个阶段。第二阶段引导加载器位于 HPS 外部,不在外
部闪存中就在 FPGA 中。如果使用 FPGA,则第二阶段引导加载器可直接从 FPGA 执行而无需复
制到片上 RAM。第二阶段引导加载器查找及加载下个阶段软件,诸如此类。
控制权被传递到第二阶段引导加载器之前, 如果安全引导被使能则可以将它解密和/或认证。
热复位之后,用户能指示引导 ROM 在片上 RAM 中寻找一个映像并直接从此执行。在这种情况
下,RAM 中的映像是未认证的明码,尽管起初它可能作为已认证的代码被导入片上 RAM。
©
2016 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
ISO
9001:2008
Registered
www.altera.com
101 Innovation Drive, San Jose, CA 95134
下图显示了典型的引导流程。然而, 用户软件中的软件阶段可能比所列的或多或少,且软件阶段的
作用也可能有所不同。
图 1: 典型引导流程
U-Boot 是典型引导流程第二阶段引导加载器的实例。Linux 是典型引导流程 OS 的实例。
Reset Boot ROM
Second-Stage
Boot Loader
Operating
System
Application
User Software
裸机引导流程
下图显示了使用裸机应用的引导流程。
图 2: 裸机引导流程
Reset Boot ROM
Second-Stage
Boot Loader
BareMetal
自定义引导加载器
您也可根据需要创建自定义引导加载器。
图 3: 自定义引导加载器流程
Reset Boot ROM
Custom Boot
Loader
Application
2
裸机引导流程
UG-1171
2015.10.30
Altera 公司
Arria 10 SoC 引导用户指南
反馈
引导阶段
复位
各引导阶段之前先复位,它是器件初始化的重要部分。有两种复位类型:冷复位和热复位。
SoC 的 FPGA 部分可以触发热或冷复位以完成配置。
当 MPU 中的 CPU0 从复位状态退出时,引导过程开始。CPU0 从复位退出后开始执行复位异常地
址上的代码,且引导 ROM 代码也位于此。同时 CPU1 保留于复位中并由用户软件释放出来。
通过热复位,一些软件寄存器被保留,而基于不同的软件设置,引导过程可能会跳过一些步骤。
此外,热复位中,可以从片上 RAM 执行第二阶段引导加载器。
相关链接
• 复位管理器
更多关于软件复位的信息,请参阅 Arria 10
硬核处理器系统技术参考手册
中的“复位管理器”
章节。
• Arria 10 内核架构及通用 I/O 手册
更多关于 FPGA 配置和复位的信息
第一阶段: 引导 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 中开始执行。
UG-1171
2015.10.30
引导阶段
3
Arria 10 SoC 引导用户指南
Altera 公司
反馈
当 CPU0 退出引导 ROM 代码并开始执行用户模式时,引导 ROM 访问被禁用。 在 CPU0 执行的
用户软件必须映射用户软件异常矢量到 0x0(就是之前映射到引导 ROM 的异常矢量),如果需要
就将 CPU1 从复位释放。CPU1 从复位释放后,执行用户软件异常而非引导 ROM。
相关链接
SoC 安全
更多关于安全熔丝的信息,请参阅 Arria 10
硬核处理器系统技术参考手册
的 SoC
安全
章节。
引导 ROM 流程
冷复位中,CPU0 从复位释放(例如, 上电中)时 HPS 引导过程开始,并执行复位异常地址
0x00000000 上内部引导 ROM 中的代码。引导 ROM 代码把 HPS 从复位释放并置入一个已知状
态。引导 ROM 代码退出后,将控制传递到引导软件的下个阶段,称为第二阶段引导加载器。可
自定义第二阶段引导加载器,通常它存储于 HPS 外部一个非易失闪存基础的存储器中或 FPGA 的
片上 RAM 中。随后第二阶段引导加载器可加载 OS, BareMetal 应用或潜在的第三阶段引导加载
器。
本节描述了从复位到引导 ROM 代码传递软件控制到第二阶段引导加载器的软件流程。
代码开启,初始化系统随之根据引导请求类型,尝试将代码加载到片上 RAM。如果加载成功,第
二阶段引导加载器代码执行。如果引导 ROM 查找代码失败或后续三次加载尝试均失败,则自旋
等待看门狗复位。
4
引导 ROM 流程
UG-1171
2015.10.30
Altera 公司
Arria 10 SoC 引导用户指南
反馈
图 4: 主要引导 ROM 流程
Initialize System
Reset
Boot Type
Jump to Code
FPGA Boot
RAM Boot
Error
Boot
Code Valid?
Reserved Boot
Flash Boot
High-Level
Boot
FPGA Boot
RAM Boot
Reserved Boot
Spin Until
Watchdog Reset
Yes
No
引导 ROM 通常在 CPU0 执行。主引导 ROM 代码执行时,通常 CPU1 被保持于复位中并仅当系统
软件要求时才将其释放。
作为确定引导类型的一部分,引导 ROM 执行低级别引导流程。引导 ROM 代码读取安全熔丝以确
定第二阶段的引导源是否强制为 FPGA。如有请求无认证 FPGA 引导和无 CRC 片上 RAM 引导,
或者引导无效,则在低级别引导流程中处理。所有其他引导类型都在高级别引导流程中处理。
UG-1171
2015.10.30
引导 ROM 流程
5
Arria 10 SoC 引导用户指南
Altera 公司
反馈
剩余40页未读,继续阅读
资源评论
okossven
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功