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.

AM6421: eMMC boot mode fail loading u-boot.img

Part Number: AM6421

Hello,

we want to use the eMMC boot mode on the am642. We managed to load
tiboot3.bin, sysfw, and tispl.bin from the eMMC bootpart.
The eMMC bootpart look like this:

0x0 tiboot3.bin (512 KB)
0x400 tispl.bin (2 MB)
0x1400 u-boot.img (4 MB)
0x3400 environment (128 KB)
0x3500 backup environment (128 KB)
0x3600 sysfw

In the first step, we tried the layout from the am64x sdk

0x0 tiboot3.bin
0x800 tispl.bin
0x1800 u-boot.img

This partition layout is missing the sysfw address.
Can you confirm the complete layout for am64x, including syswf and environment?

Booting with the first layout fails with "Booting from device 9 not supported!"

This Error message is printed from https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/mach-k3/common.c

It seems the code didn't support eMMC booting because only BOOT_DEVICE_MMC2 and BOOT_DEVICE_SPI are defined.

In our case the function "__get_primary_bootmedia" https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/mach-k3/am642_init.c return BOOT_DEVICE_MMC1 (BOOT_DEVICE_EMMC)

Is there some u-boot/SPL implementation or configuration missing? 

Best regards 

Stefan 

  • Hello Stefan,
    - eMMC layout on TI AM64x boards:
    software-dl.ti.com/.../UG-Memory.html
    - Note that "sysfw.bin" is built into "tiboot3.bin" by default for AM64x SoC.

    You may refer to this e2e on AM62x eMMC offsets for your reference:
    e2e.ti.com/.../4378479
    It is important to do the followings when porting u-boot for customer board:
    1/. modify the two offsets to match the customer eMMC offset layout
    2/. use the exact same offsets for both eMMC flashing and booting

    Best,
    -Hong