HLK-7621-uboot(2026.07)笔记-02
arch/mips/dts/mt7621-u-boot.dtsi
语法
1 | 节点名 { |
spl-img节点
1 | spl-img |
将原始 SPL 二进制交给
mkimage进行镜像格式封装。
filename
1 | spl-img { |
表示这个 Binman 节点最终生成的文件名为:
1 | u-boot-spl-ddr.img |
mkimage 节点
1 | mkimage { |
表示 Binman 不直接复制数据,而是调用 U-Boot 的:
1 | mkimage |
工具处理输入数据。
整体可以理解为:
1 | 输入数据 |
blob 是 mkimage 的输入数据
1 | blob { |
表示:
1 | u-boot-spl-ddr.bin |
作为 mkimage 的输入。
blob 可以理解为:
一块不需要 Binman 解析内部结构的二进制数据。
因此:
1 | blob |
SPI NOR 启动时的 mkimage 参数
非 NAND 启动时使用:
1 | args = "-A", "mips", |
-A mips
架构是 MIPS
-T standalone
镜像类型是 standalone
-O u-boot
操作系统类型标记为 U-Boot
-C none
u-boot-spl-ddr.bin本身不进行压缩。
-n “MT7621 U-Boot SPL”
镜像名字
-a CONFIG_SPL_TEXT_BASE
SPL 应该被加载到哪个内存地址。
-e CONFIG_SPL_TEXT_BASE
SPL 加载完成后,从哪个地址开始执行。
__stringify
1 | __stringify(CONFIG_SPL_TEXT_BASE) |
用于把一个宏转换成字符串。
因为 mkimage 的参数需要字符串形式。
.bin 和 .img 的关系
输入:
u-boot-spl-ddr.bin: 属于原始二进制数据。
结构可以理解为:
1 | [SPL][MT7621 stage SRAM code] |
经过 mkimage 后生成:
u-boot-spl-ddr.img结构大致变成:
1 | +-------------------------+ |
.bin:
主要表示原始二进制内容。
.img:
已经按照某种镜像格式封装的数据。
16. 整个节点的结构
1 | spl-img |
17. 最终流程
1 | u-boot-spl.bin |
核心理解:
spl-img节点的作用,就是使用mkimage将u-boot-spl-ddr.bin封装成u-boot-spl-ddr.img。
