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
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.
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