This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM623: eMMC Boot Configuration - Raw Mode vs Filesystem Mode Setup

Part Number: AM623

Tool/software:

Hi,

I would like to understand the difference between raw mode and filesystem (FS) mode in eMMC boot. How can I set up both raw mode and filesystem mode for booting from eMMC at the U-Boot and Linux levels? Additionally, what are the exact steps to configure raw mode and filesystem mode in the User Data Area (UDA)?

Current eMMC Boot Configuration I'm using:

Primary Boot: eMMC UDA in Filesystem mode
Pins B7-B0: 01000011
Backup Boot: Ethernet RGMII
Pins B15-B8: 00010000

Thanks,
Murali Vikas

  • Hello,

    The eMMC alternate bootmode (B6-B3 : 1001) is available for booting from eMMC Boot0 or Boot1 partition in RAW mode. The following guide describes the steps to flash the U-Boot images to these partitions & any other steps necessary for booting from eMMC Boot0/Boo1 partition.

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_00_07_04/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html#booting-tiboot3-bin-tispl-bin-and-u-boot-img-from-emmc-boot-partition-for-k3-class-of-socs

    Reagrds,

    Prashant

  • Hi Prashant,

    Could you help me understand the difference between raw mode and filesystem (FS) mode when booting from eMMC? Specifically, I would like to know how the boot process differs between these two modes and the implications for where bootloader and system images are stored.

    Thanks,
    Murali Vikas

  • Hello,

    1) RAW => The U-Boot images are flashed at certain offsets in eMMC Boot0 or Boot1 partition. The layout is defined here:

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_00_07_04/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html#booting-tiboot3-bin-tispl-bin-and-u-boot-img-from-emmc-boot-partition-for-k3-class-of-socs:~:text=2%200%200-,eMMC%20layout%3A,-boot0%20partition%20(8

    In eMMC alternate bootmode, the ROM boots the R5 SPL from offset 0x0. The further U-Boot images are booted from the offsets as described in the above guide.

    2) FS => The U-Boot images are present in the FAT filesystem with certain names. In eMMC UDA FS bootmode, the ROM boots the R5 SPL by the name tiboot3.bin from the FAT filesystem. The further U-Boot images (tispl.bin & u-boot.img) are booted from the same.

    Regards,

    Prashant

  • Hi Prashant,

    I would like to attempt eMMC UDA boot in both raw and FS modes. Could you please assist me with the process? Additionally, I’d appreciate any clarification on the differences between alternate eMMC and eMMC UDA, along with reference links for flashing, if available.

    Regards, Vikash

  • I would like to attempt eMMC UDA boot in both raw and FS modes.

    This is not possible if the eMMC UDA is already used for Linux Rootfs filesystem. The partition table exists at 0x0 which is also the offset at which the image is expected by ROM in RAW mode.

  • What if I delete entire eMMC partion and its a fresh flash can I able to do that? 

    Current Setup: I am flashing tiboot3.bin, SPL, and U-Boot in raw mode to partition 1 (boot0) using mmc dev 0 1. The root filesystem is stored in partition 0 (mmc dev 0 0), and the system is booting with eMMC boot pins configured in FS mode.

    For using the raw mode with UDA, should we flash tiboot3.bin, SPL, and U-Boot to mmc dev 0 0 and set mmc partconf 0 1 7 1? Could you please confirm if this is the correct approach for flashing in raw mode on the UDA?
     

    We have successfully tested eMMC Boot.



  • For using the raw mode with UDA, should we flash tiboot3.bin, SPL, and U-Boot to mmc dev 0 0 and set mmc partconf 0 1 7 1?

    This will work.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    => mmc dev 0 0
    switch to partitions #0, OK
    mmc0(part 0) is current device
    => fatload mmc 1:1 $loadaddr tiboot3.bin
    292190 bytes read in 31 ms (9 MiB/s)
    => mmc write $loadaddr 0x0 0x400
    MMC write: dev # 0, block # 0, count 1024 ... 1024 blocks written: OK
    => fatload mmc 1:1 $loadaddr tispl.bin
    1111399 bytes read in 65 ms (16.3 MiB/s)
    => mmc write $loadaddr 0x400 0x1000
    MMC write: dev # 0, block # 1024, count 4096 ... 4096 blocks written: OK
    => fatload mmc 1:1 $loadaddr u-boot.img
    1007563 bytes read in 61 ms (15.8 MiB/s)
    => mmc write $loadaddr 0x1400 0x2000
    MMC write: dev # 0, block # 5120, count 8192 ... 8192 blocks written: OK
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    Set to BOOT_BUS_WIDTH = 0x2, RESET = 0x0, BOOT_MODE = 0x0
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    If you are leveraging the eMMC UDA boot in RAW mode then you will not be able to boot Linux as the partition table would need to be at 0x0 offset which is where the `tiboot3.bin` is also flashed.

  • Hi,

    I have successfully followed the steps and flashed up to U-Boot in eMMC UDA RAW mode

    • tiboot3.bin has been successfully flashed at block 0x0 in RAW mode.
    • tispl.bin, u-boot.img, and other necessary binaries have also been flashed at their respective block addresses.
    • U-Boot is now booting correctly from the eMMC in RAW mode.

    Query 1: Is it possible to load Linux in RAW mode?

    • I understand that when using eMMC UDA RAW mode, the partition table (GPT) is typically overwritten by tiboot3.bin at offset 0x0. Without the GPT, Linux won’t be able to locate partitions like the root filesystem (rootfs). However, I would like to confirm if there’s any alternative way to boot Linux entirely in RAW mode, bypassing the need for a filesystem partition.

    Query 2: Clarification on eMMC Normal Boot and eMMC UDA Filesystem (FS) Boot

    • I may have been operating under a wrong assumption about eMMC Normal Boot and eMMC UDA Filesystem (FS) Boot modes. Could you please provide detailed steps for booting in UDA FS mode? I would like to understand how the partition table (GPT) is handled, how the filesystem is structured, and how Linux is loaded in this mode.

     Regards,vikash

  • Hi,

    my understanding is that in eMMC UDA raw mode, we can only boot until U-Boot from the UDA area, and the Linux filesystem cannot be loaded because the raw image starts at the 0x0 offset.

    Could you confirm if my understanding is correct, or provide any additional steps to boot Linux in this configuration?

     Regards,vikash