SDAA437 July   2026 TDA4VE-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
    1. 1.1 Motivation
    2. 1.2 Scope
    3. 1.3 Target Boot Architecture
  5. Background
    1. 2.1 J721S2 Boot Flow
    2. 2.2 OSPI NOR Flash Overview
    3. 2.3 UBI and UBIFS Overview
  6. OSPI Flash Layout
    1. 3.1 Partition Layout
    2. 3.2 Bootloader Partitions
    3. 3.3 Root Filesystem Partition
  7. Flashing Boot Components
    1. 4.1 Boot Components Overview
    2. 4.2 Identifying OSPI MTD Partitions
    3. 4.3 Flashing Boot Components into OSPI NOR Flash
    4. 4.4 Verifying Boot Components
  8. Creating a UBIFS Root Filesystem
    1. 5.1 Preparing the RootFS Partition
    2. 5.2 Creating a UBI Device
    3. 5.3 Creating a UBIFS Volume
    4. 5.4 Verifying UBIFS Operation
  9. Storing Linux Boot Artifacts in UBIFS
    1. 6.1 Mounting the UBIFS Root Filesystem Volume
    2. 6.2 Creating the Root Filesystem Structure with BusyBox
    3. 6.3 Verifying BusyBox Execution
    4. 6.4 Creating BusyBox Command Links
    5. 6.5 Creating the init Script
    6. 6.6 Testing the Root Filesystem Using chroot
    7. 6.7 Copying the Linux Kernel Image and DTB
  10. Configuring Linux Boot from UBIFS
    1. 7.1 Configuring Boot Arguments
    2. 7.2 Loading the Kernel and DTB from UBIFS
    3. 7.3 Testing Linux Boot
    4. 7.4 Creating a Reusable Boot Command
  11. Booting Linux Entirely from OSPI NOR Flash
    1. 8.1 Automating the Boot Sequence in U-Boot
    2. 8.2 End-to-End Boot Flow
  12. Summary
  13. 10References

UBI and UBIFS Overview

Raw flash devices such as NOR and NAND flash are fundamentally different from block storage devices such as eMMC and SSDs. Linux filesystems designed for block devices, such as ext4, are not intended to operate directly on raw flash memory.

To support reliable storage on raw flash devices, Linux provides the UBI (Unsorted Block Images) layer and the UBIFS (UBI File System).

UBI sits between the MTD subsystem and the filesystem. It manages flash-specific requirements such as logical erase block mapping, wear leveling, and bad block handling. UBIFS is a flash-aware filesystem that operates on top of UBI volumes.

 UBI/UBIFS Software StackFigure 2-1 UBI/UBIFS Software Stack.

Using UBI and UBIFS allows Linux to store and access files reliably on OSPI NOR flash while providing a standard filesystem interface to both U-Boot and Linux.

In this application note, a UBI volume named rootfs is created in the OSPI root filesystem partition. This volume stores the Linux kernel image, DTB, and the Linux root filesystem.