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.

[FAQ] TDA4VM: DRA829/DRA821: How to boot from eMMC boot1 partition

Part Number: TDA4VM
Other Parts Discussed in Thread: CSD, DRA829, , DRA821

Typically eMMC boot happens from boot0 partition. Can we boot from boot1 partition of eMMC? If yes how to achieve the boot1 partition booting

  • Yes. It is possible to boot from boot1 partition of eMMC. By default the SDK chooses the boot0 partition.
    The above is determined by the EXT_CSD register of eMMC.

    So the only change that one needs to do switch to boot0 partition is to tweak the third parameter of partconf command from U-Boot prompt.

    For boot0 partition the SDK documentation covers as below: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_01_00_07/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html

    mmc partconf 0 1 1 1

    Details of the partconf command:

    mmc partconf dev [boot_ack boot_partition partition_access]
    - Show or change the bits of the PARTITION_CONFIG field of the specified device

    So to boot from the boot0 partition we need change the third parameter for partconf command from 1 --> 2.

    boot_partition 1 --> boot0 partition
    boot_partition 2 --> boot1 partition

    So from the U-Boot prompt:

    mmc partconf 0 1 2 1

    The above enabled booting from boot1 partition.

    To validate first erase the boot0 partition. Boot to U-boot prompt:

    mmc dev 0 1
    mmc erase 0x0 0x2000

    Followed by the regular eMMC write commands for J721e/DRA829/TDA4VM:

    mmc dev 0 2
    fatload mmc 1 ${loadaddr} tiboot3.bin
    mmc write ${loadaddr} 0x0 0x400
    fatload mmc 1 ${loadaddr} tispl.bin
    mmc write ${loadaddr} 0x400 0x1000
    fatload mmc 1 ${loadaddr} u-boot.img
    mmc write ${loadaddr} 0x1400 0x2000
    fatload mmc 1 ${loadaddr} sysfw.itb
    mmc write ${loadaddr} 0x3600 0x800

    For J7200/DRA821

    mmc dev 0 2
    fatload mmc 1 ${loadaddr} tiboot3.bin
    mmc write ${loadaddr} 0x0 0x800
    fatload mmc 1 ${loadaddr} tispl.bin
    mmc write ${loadaddr} 0x800 0x1000
    fatload mmc 1 ${loadaddr} u-boot.img
    mmc write ${loadaddr} 0x1800 0x2000

    Dip switch settings remain the same:

    SW8: 10000000
    SW9: 01000000