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.

TMDS64GPEVM: Emmc boot not working

Part Number: TMDS64GPEVM

i am trying to boot from the emmc using the reference image provided with SDK 8 but i see no output on the tty port when i set the DIP switch SW2.4 to ON as given in AM64x/AM243x GP EVM User`s guide and everything else is set to default values . 

i have flashed the emmc with the same reference image that i use for SD card .  

Please note : that i am a load kernel and device tree from emmc by setting the uboot argument mmcdev=0 [emmc] from the sdcard image which means image is perfectly flashed on emmc. 

Am i missing something ? 

Do i need to recompile the bootloaders/uboot for emmc ? 

what uboot argument that i need to set to mount/load rootfs form emmc instead of sdcard ?

  • Hello,

    Please see eMMC boot mode setting below:

    You'll also need to set env bootpart to 0. You don't need to rebuild u-boot.

    Please refer to the attached to-be-published guide on how to boot Linux from eMMC.

    8030.Flash Linux to eMMC.pdf

    Regards,

    Jianzhong

  • Thanks for the quick reply 

    i am able to boot rootfs and kernel/Device tree by setting the following uboot arguments [in sd card image] :

    setenv mmcdev 0
    => setenv bootpart 0
    => boot

    but i cannot load the bootloaders by setting the dip switches setting as shared by you earlier . i still see no output on tty port during power on . 

    Please note that i have already flashed tiboot3.bin,  tispl.bin and u-boot.img too boot0 partition of emmc using 

    $ dd if=tiboot3.bin of=/dev/mmcblk0boot0 seek=0
    $ dd if=tispl.bin of=/dev/mmcblk0boot0 seek=1024
    $ dd if=u-boot.img of=/dev/mmcblk0boot0 seek=5120

  • Hello,

    I'd like to confirm my understanding of your situation:

    1. You were able to boot the EVM to Linux with an SD card.

    2. With the SD card in, you were able to boot to uboot and change the env. After that, you were able to boot to Linux.

    3. Without the SD card in, you didn't see any output on the UART console. 

    Is my understanding correct?

    Thanks,

    Jianzhong

  • Yes  , your understanding is correct. 

    After removing the SD card I don't see any output on tty although I have flashed the bootloaders to emmc boot partition  and set the dip switch to boot from emmc . 

  • That's a strange behavior. 

    Since I will be out tomorrow and next week, let me loop in our U-Boot expert to help you.

    Regards,

    Jianzhong

  • There are e2e post on eMMC flashing/booting.
    e2e.ti.com/.../3896196
    Do we know the following two cmds are ran @u-boot prompt after flashing eMMC?

    => mmc partconf 0 1 1 1
    => mmc bootbus 0 2 0 0

    Best,

    -Hong

  • After setting partconf and bootbus I am able to boot from emmc . 

    But I cannot make it persistence after next reboot. 

    So do I need to recompile the uboot for emmc ? 

    I cannot create uenv by using saveenv since that command is looking for fat partition . 

    Does the rom bootloader load support loading bootloader from user partition  / fat partition ? 

  • Hi Paras,
    Sorry for late response while I'm catching up after Thanksgiving holiday break.
    In the default eMMC boot, all u-boot files (tiboot3.bin, tispl.bin, u-boot.img) are flashed and booted out of eMMC boot partition, and kernel/rootfs... are flashed and booted out of eMMC user partition. The following two environment variables are defined in "u-boot/include/configs/am64x_evm.h", and used for u-boot to load kernel/rootfs... from MMC/SD ext4 partition.
    mmcdev=1
    bootpart=1:2
    So some options to continue booting kernel/rootfs.. from eMMC user partition are listed below:

    1). After eMMC flashing, run the u-boot cmds to configure loading kernel/rootfs from eMMC user partition, and "saveenv"

    => setenv mmcdev 0
    => setenv bootpart 0
    => saveenv

    Unfortunately "saveenv" cmd is currently not fully functional by default to save the environment variable to eMMC boot partition.
    So some alternatives:
    2). Boot from eMMC upto u-boot, run the following cmds @u-boot

    => setenv mmcdev 0
    => setenv bootpart 0
    => boot

    3). Modify u-boot environment variables as listed below in "u-boot/include/configs/am64x_evm.h", re-build u-boot, and then flash the u-boot files (tiboot3.bin, tispl.bin, u-boot.img) to eMMC boot partition.
    mmcdev=0
    bootpart=0

    Best,
    -Hong