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 上更是严格如此。