ZHDA242 July   2026 TDA4VE-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
    1. 1.1 动机
    2. 1.2 范围
    3. 1.3 目标引导架构
  5. 背景
    1. 2.1 J721S2 启动流程
    2. 2.2 OSPI NOR 闪存概述
    3. 2.3 UBI 和 UBIFS 概述
  6. OSPI 闪存布局
    1. 3.1 分区布局
    2. 3.2 引导加载程序分区
    3. 3.3 根文件系统分区
  7. 刷写引导元件
    1. 4.1 引导元件概述
    2. 4.2 识别 OSPI MTD 分区
    3. 4.3 将引导元件刷写到 OSPI NOR 闪存中
    4. 4.4 验证引导元件
  8. 创建 UBIFS 根文件系统
    1. 5.1 准备 RootFS 分区
    2. 5.2 创建 UBI 设备
    3. 5.3 创建 UBIFS 卷
    4. 5.4 验证 UBIFS 操作
  9. 将 Linux 引导工件存储在 UBIFS 中
    1. 6.1 挂载 UBIFS 根文件系统卷
    2. 6.2 使用 BusyBox 创建根文件系统结构
    3. 6.3 验证 BusyBox 执行
    4. 6.4 创建 BusyBox 命令链接
    5. 6.5 创建 init 脚本
    6. 6.6 使用 chroot 测试根文件系统
    7. 6.7 复制 Linux 内核映像和 DTB
  10. 从 UBIFS 配置 Linux 引导
    1. 7.1 配置引导参数
    2. 7.2 从 UBIFS 加载内核和 DTB
    3. 7.3 测试 Linux 引导
    4. 7.4 创建可重复使用的引导命令
  11. 完全从 OSPI NOR 闪存引导 Linux
    1. 8.1 自动执行 U-Boot 中的引导序列
    2. 8.2 端到端引导流程
  12. 总结
  13. 10参考资料

UBI 和 UBIFS 概述

NOR 和 NAND 闪存等原始闪存设备与 eMMC 和 SSD 等块存储设备大不相同。专为块设备(如 ext4)设计的 Linux 文件系统不能直接在原始闪存存储器上运行。

为了支持在原始闪存器件上进行可靠存储,Linux 提供了 UBI(未排序的块映像)层和 UBIFS(UBI 文件系统)。

UBI 位于 MTD 子系统和文件系统之间。它管理闪存特定的要求,例如逻辑擦除块映射、磨损均衡和坏块处理。UBIFS 是在 UBI 卷之上运行的闪存感知文件系统。

 UBI/UBIFS 软件栈图 2-1 UBI/UBIFS 软件栈.

使用 UBI 和 UBIFS 使 Linux 能够在 OSPI NOR 闪存上可靠地存储和访问文件,同时为 U-Boot 和 Linux 提供标准文件系统接口。

在本应用手册中,在 OSPI 根文件系统分区中创建了一个名为 rootfs 的 UBI 卷。此卷存储 Linux 内核映像、DTB 和 Linux 根文件系统。