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

Boot Components Overview

The J721S2 boot flow implemented in this application note uses three boot software components stored in OSPI NOR flash.

  • tiboot3.bin – Secondary Bootloader
  • tispl.bin – A72 SPL
  • u-boot.img – U-Boot

During system startup, the ROM code loads tiboot3.bin from OSPI NOR flash. The boot process then continues through tispl.bin and u-boot.img before Linux is loaded from the UBIFS filesystem stored in the root filesystem partition.