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.
Hi TI Experts:
I have successfully booted SPL from the eMMC boot0 partition in SDK 8.4.
According to the following:
https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_06_00_11/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
and I learned from the SDK 8.6 documentation that SBL can be booted from the eMMC UDA partition:
https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_06_00_12/exports/docs/pdk_jacinto_08_06_00_31/docs/userguide/jacinto/boot/boot_k3.html#booting-via-emmc-uda-partition
I tried it, but I'm using SPL instead of SBL.
I can't boot from the eMMC UDA partition.
My Steps:
1. Formatting eMMC UDA partitions just like formatting SD cards: boot(fat) + rootfs(ext4).
2. Copy the files from the SD card boot partition to the eMMC boot partition(tiboot3.bin, tispl.bin, sysfw.itb...).
3. Setting eMMC EXCSD in u-boot:
mmc partconf 0 1 7 1
mmc bootbus 0 2 0 0
OR
mmc partconf 0 0 0 0
mmc bootbus 0 0 0 0
4. set boot mode pin & power on
There is no output from the serial port & the current is only about 0.3A.
My understanding is that the process of SPL boot from eMMC UDA should be:
1. BootRom load tiboot3.bin(SPL) file from boot partion(FAT) in UDA
2. tiboot3.bin load sysfw.itb file from boot partion(FAT) in UDA
3. ...
If my understanding is incorrect, please correct me.
Are there any mistakes in my steps?
Could you please teach me how to boot SPL from eMMC UDA in SDK 8.4.
Our SDK Version:
SDK Linux:08_04_00_11
SDK RTOS: 08_04_00_06
Thank you!
Hi Tiancheng Zhang,
Try with these command
=> mmc dev 0 0
=> 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
=> mmc partconf 0 1 7 1
=> mmc bootbus 0 2 0 0
0x7 is used for the user data parttion .
Regards
Diwakar
Hi Diwakar
Thank you for your reply.
mmc dev 0 0
I understand that this method is using UDA-raw mode to boot.
I am worried that the 0x0 offset conflicts with the MBR partition table in UDA.
Reasons for using eMMC UDA boot:
The eMMC parts for our customized board may not be compatible with boot0 boot.
So we want to try booting from UDA.
Thank you!
BRs
Tiancheng
Hi Tiancheng
I am worried that the 0x0 offset conflicts with the MBR partition table in UDA.
You want to use FS mode or raw mode ?
Regards
Diwakar
Hi Diwakar
I think I have to use FS mode to boot from UDA.
Because Linux rootfs is on UDA, there must be a partition table.
If my understanding is incorrect, please correct me.
Thank you!
BRs
Tiancheng
Hi Tiancheng
If my understanding is incorrect, please correct me.
yes .
Also how about you boot images will they will be in UDA only ?
Regards
Diwakar
Hi Diwakar
Yes, boot images will be in UDA only, just like placing boot image on an SD card.
There are software boot partion and rootfs partion in UDA
Is this plan feasible?
and we plan to remove OSPI Flash.
Thank you!
BRs
Tiancheng
Hi Tiancheng
If you want to boot from the UDA partion in FS mode please follow these steps.
diff --git a/configs/j721e_evm_r5_defconfig b/configs/j721e_evm_r5_defconfig index 34457c35d8..6af7f59cd3 100644 --- a/configs/j721e_evm_r5_defconfig +++ b/configs/j721e_evm_r5_defconfig @@ -34,8 +34,8 @@ CONFIG_SPL_BOARD_INIT=y CONFIG_SPL_STACK_R=y CONFIG_SPL_SEPARATE_BSS=y CONFIG_SPL_EARLY_BSS=y -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x400 +#CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set +#CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is not set CONFIG_SPL_DMA=y CONFIG_SPL_ENV_SUPPORT=y CONFIG_SPL_FS_EXT4=y diff --git a/configs/j721e_evm_a72_defconfig b/configs/j721e_evm_a72_defconfig index e71a862a6f..d4e6fc0b52 100644 --- a/configs/j721e_evm_a72_defconfig +++ b/configs/j721e_evm_a72_defconfig @@ -33,8 +33,8 @@ CONFIG_SPL_BOARD_INIT=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y CONFIG_SPL_STACK_R=y CONFIG_SPL_SEPARATE_BSS=y -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1400 +#CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set +#CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is not set CONFIG_SPL_DMA=y CONFIG_SPL_ENV_SUPPORT=y CONFIG_SPL_I2C_SUPPORT=y
NOTE:With these changes you will not be able to use emmc raw mode If you want to use revert the above mentioned changes
Regards
Diwakar