当前位置:首页>Linux>Linux启动BootROM 核心笔记

Linux启动BootROM 核心笔记

  • 2026-09-17 09:30:17
Linux启动BootROM 核心笔记
一、BootROM 正确模型

1.  本质:BootROM 是芯片出厂固化的第一段代码,上电复位后自动执行,只读、不可修改。

2.  最小必需初始化:

  • 读取启动配置(strap / RCW 等)  

  • - strap(引脚strap):芯片外部的硬件引脚,通过引脚高低电平(拨码/硬件焊接),告诉BootROM「优先从哪个介质启动」(如eMMC/QSPI/SD)、启动模式等基础配置,是硬件层面的启动选择。                

  • - RCW(Reset Configuration Word,复位配置字):LS1028A专属的启动配置字,通常存储在启动介质(如QSPI)的固定位置,BootROM读取后,配置芯片核心参数(如SerDes模式、时钟分频、核心电压等),是软件层面的关键启动配置。  

  • 配置时钟、引脚、SerDes 等,仅满足正常访问启动介质即可

3.  加载首段镜像:按配置的启动顺序,查找并加载首段镜像(SPL / BL2 / boot0 等),加载至 片上 SRAM / OCRAM 中执行。

4.  校验与安全:

  • 开启安全启动:BootROM 完成验签/认证

  • 未开启安全启动:仅做基本格式检查

5.  交权:校验/加载完成后,PC 跳转到首段镜像,BootROM 使命结束,完全交出控制权。

二、DDR 初始化的正确表述

1.  DDR 初始化不一定由 BootROM 完成,取决于芯片架构、片上 SRAM 大小、厂商设计。

2.  主流工程设计:DDR 初始化、训练、板级相关配置,均放在首段镜像中(SPL / BL2 / boot0)。

核心原因:DDR 参数高度板级相关,放在可更新的镜像里更灵活。

3.  NXP LS10xx / LS1028A 专属规则:BootROM 不做任何 DDR 初始化,DDR 初始化完全由 SPL 或 TF-A BL2 实现。

三、小 SRAM 平台的正确理解

若片上 SRAM 较小,BootROM 会先加载一个极小的 preloader/boot0 到 SRAM;由它完成 DDR 初始化后,再将更大的镜像(U‑Boot、BL2、内核等)加载到 DDR 中运行。

四、一句话终极总结

BootROM 只负责把系统初始化到能读取启动介质,加载首段镜像到片上 SRAM 并跳转;DDR 初始化通常由首段镜像(SPL/BL2)完成,在 LS1028A 上更是严格如此。

最新文章

随机文章