Jetson Nano 启动流程

适用于: 仅适用于 Jetson Nano 设备
NVIDIA® Jetson Nano™ 启动软件的主要功能是初始化 SoC(片上系统),包括
初始化 MC/EMC/CPU
设置安全参数
加载不同的固件
维护信任链
为不同的固件设置内存预留区
刷写设备
启动到操作系统
此外,Jetson Nano 启动软件还执行产品需求定义的其他操作,包括但不限于
HDMI™/DSI 的初始化
显示启动徽标
启动软件中的控制流程如下。
A picture containing text, screenshot, diagram, line Description automatically generated

BootROM

Jetson Nano BootROM (BR) 硬连线在 SoC 中。它初始化启动介质并从启动介质加载引导加载程序和固件。
启动介质的开头可能存储 BootROM 启动配置表 (BCT) 的多个副本。BCT 包含 BootROM 用于硬件初始化的配置参数。
BCT 还包含有关引导加载程序 (BL) 的信息,包括
大小
入口点
加载地址
哈希值
BootROM 使用此信息来验证和加载引导加载程序。启动流程如下

引导加载程序组件

Jetson Nano 引导加载程序和闪存组件包括
TegraBoot,也称为 NVTBoot 或 TBoot
CPU-BL,也称为 nvtboot-cpu
CBoot
U-Boot

TegraBoot

Jetson Nano TegraBoot (NVTBoot) 是 BR 在 SysRAM 中加载的第一个启动软件组件,并在 BPMP 上运行。
TegraBoot 有两种变体
一种用于冷启动
一种用于恢复启动/刷写
两者都使用不同的配置文件和 make 文件生成。
TegraBoot 负责
加载和初始化固件 (FW) 组件,例如 TOS
创建预留区
完成 CPU 初始化
加载下一阶段引导加载程序
支持刷写
支持 RCM 启动
读取 PMIC 复位原因
加载引导加载程序设备树并将设备树加载地址传递给 CBoot
当 CCPLEX 启动时停止执行
TegraBoot 的组件如下
A screenshot of a cell phone Description generated with very high confidence

TegraBoot CPU

添加回滚预防机制。
使用引导加载程序 DTB,执行 EMC 训练,并使用训练结果更新内核 DTB。
将控制权传递给 CBoot。

CBoot

Jetson Nano CBoot 是冷启动路径中移动平台使用的主要 CPU 引导加载程序。CBoot 是功能丰富的引导加载程序,它
启动 U-Boot
支持显示和启动徽标/bmp 闪屏
基于 Little Kernel (LK) 开源引导加载程序
使用 LK 的中断和调度框架
使用 CDF 进行框架、驱动程序和库操作
一旦 CPU 开始运行,CBoot 就会在 EL3 模式下启动并开始执行 TOS。TOS 完成其初始化并将控制权传递给 EL2 模式下的 CBoot。
BL 和内核使用存储在单独分区中的单独设备树。CBoot 负责
解析 CPU-BL 参数并初始化引导加载程序设备树
链接到 U-Boot 以启动内核
支持更新机制
取消 BPMP 的暂停状态,以便 BPMP-FW 可以开始运行
CBoot 的组件如下

U-Boot

U-Boot 是 NVIDIA® Jetson™ Linux 驱动程序包的默认操作系统引导加载程序。
有关更多信息,请参阅 U-Boot 定制。