[具身智能-576]:RDK X5:miniboot 分区、FIP 固件镜像、BL1.bin关系,为什么称为miniboot 分区?

📅 2026/7/12 1:29:49
[具身智能-576]:RDK X5:miniboot 分区、FIP 固件镜像、BL1.bin关系,为什么称为miniboot 分区?
一、三者完整层级关系RDK X5 SPI NAND 视角1. 基础定义miniboot 分区SPI NAND Flash 上一个独立 MTD 硬件分区mtd0整块分区专门存放芯片上电最小启动全链路固件官方命名miniboot镜像文件叫miniboot.img。 分区内部采用A/B 双备份 slot0/slot1两套完整启动固件升级失败自动切回旧固件防砖。BL1.binTF-A 标准一级安全引导固件是miniboot 分区最开头、独立存放的第一段二进制不在 FIP 包内部。 上电由芯片片内 BOOTROM直接读取先载入片内 SRAM 运行此时 DDR 未初始化。FIP 固件镜像fip.binARM TF-A 标准容器包紧跟 BL1.bin 之后存放在 miniboot 分区内 一个 FIP 内部打包 4 段固件BL2、BL31、BL32 (OP-TEE)、BL33 (U-Boot) BL1 运行完成后才解析、验签、加载 FIP 内所有固件。2. 空间排布miniboot 分区内部物理顺序plaintextminiboot分区起始地址 ├─ slot0主固件槽 │ ├─ BL1.bin 独立段分区头部 │ └─ fip.bin FIP容器内含BL2/BL31/OPTEE/U-Boot └─ slot1备用固件槽完全复刻slot0结构升级写入此处关键边界BL1 与 FIP 是同分区内两段独立二进制不是嵌套BL2/BL31/OPTEE/U-Boot 不单独占用 Flash 地址全部封装在 FIP 一个文件里ubootenv 是 SPI NAND 另一独立分区不属于 miniboot 分区。3. 启动加载逻辑对应你的串口日志上电 → 芯片内置 BOOTROM不在 Flash读取 miniboot 分区头部 BL1.binBL1 初始化 SPI NAND、校验自身签名读取同 slot 内的 fip.binBL1 解析 FIP 头部索引拆分并依次验签加载 BL2→BL31→OP-TEE→U-BootBL2 完成 DDR 初始化后续固件全部搬运至 DDR 内存执行。二、为什么这个分区叫 miniboot最小启动分区1. 字面含义Mini Boot 最小化启动固件集合地平线命名逻辑这块分区存放不依赖任何外部存储SD/eMMC就能完成完整硬件初始化的最小启动链。只靠这片 SPI NAND就能完成SPI Flash 驱动、DDR 内存初始化、安全校验、加载 U-Boot全程不需要 SD 卡即可跑通底层引导SD 卡仅用于存放 Linux 系统不在 miniboot 范畴。2. 工程层面核心理由1功能最小闭环脱离操作系统独立运行miniboot 分区内全套固件只做一件事硬件初始化 安全引导 U-Boot不含 Linux 内核、Ubuntu 系统、驱动库、应用程序。 体积极小整个分区仅 7MB对比 SD 卡几十 GB 系统镜像属于 “微型启动固件”因此命名 mini。2是整机最底层、不可缺失的最小启动底座无论 SD 卡是否损坏、丢失只要 miniboot 分区固件完好板子至少能跑完串口底层打印、进入 Fastboot 刷机模式你日志里SD Card not detected, entering Fastboot update mode就是典型场景。 如果 miniboot 分区损坏板子完全无串口输出、无法刷机彻底变砖。3编译产物统一命名规范地平线编译脚本会把BL1 FIP (全部 BL2~U-Boot) DDR 初始化固件打包成单一镜像miniboot.img烧录时完整写入 miniboot 分区行业内统一简称 miniboot 固件 / 分区。4区分层级和上层 boot 分区做隔离miniboot 分区板载 SPI NAND底层安全引导BL1/FIP/U-BootSD 卡内 /boot 分区SD 卡 FAT32 分区存放 Linux 内核、dtb、boot.scr 用 miniboot 名字明确区分片载底层启动分区与SD 卡系统启动分区避免开发混淆。3. 通俗总结命名逻辑“mini” 体积小、功能极简、不依赖外部存储 “boot” 承担芯片上电第一级引导工作 合称为miniboot分区专门存放完成最小硬件启动所需的全部底层 TF-A 固件。三、易混淆关键点澄清BL1.bin 不是 FIP 的一部分FIP 只包含 BL2 及之后固件BL1 独立在分区头部FIP 只是容器不是独立分区FIP 物理上仍存在 miniboot 分区内部miniboot 分区 ≠ U-BootU-Boot 只是 FIP 内部其中一段固件miniboot 包含完整 BL1FIP 全套安全启动链烧 SD 镜像不会改动 miniboot 分区升级 BL1/BL31/U-Boot 必须单独刷 miniboot.img