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.

AM62A7: About starting the system from EMMC

Part Number: AM62A7

Tool/software:

Hi TI Experts


I successfully flashed the image to eMMC, but there are two problems.


1: After powering off and restarting, the boot will fail. When entering the UBOOT environment, it seems that the file is not found. I need to manually execute the following command to successfully enter the system.

setenv mmcdev 0
setenv bootpart 0
boot

I hope it can successfully enter the system by itself.


2: The boot time from eMMC is almost the same as the boot time from the SD card. As far as I know, booting from eMMC should be much faster than booting from the SD card.

Best Regards

Meng

  • Hello Meng,

    Are you using a TI EVM or a custom board? If you are using a TI EVM, please verify your boot switches as documented in the EVM user's guide.
    https://www.ti.com/tool/SK-AM62A-LP 

    Regards,

    Nick

  • Hi, Nick

    It is a TI EVM board

    And i have change switch to eMMC boot mode 

    Best Regards,

    Meng

  • Hello Meng,

    Please update boot switches

    Your boot switches do not look correct to me. Please set them to match the "EMMC BOOT MODE" graphic here:
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/10_01_00_33/exports/docs/api_guide_am62ax/EVM_SETUP_PAGE.html#BOOTMODE_EMMC

    Looks like there is a bug in the EVM User's Guide

    It looks like there is a bug in the Bootmode section of the AM62A Low-Power SK EVM User's Guide, table
    "Table 4-15. Primary Boot Media Configuration BOOTMODE [9:7]". I think this table should have a bunch of ON/OFF information, not all the random text that is there in revision A of the document.

    I have filed a bug against the document. Apologies for any confusion here.

    Regards,

    Nick

  • Hello Nick,

    I set the Switch to EMMC boot mode according to the documentation,

    but it still has the same error as before,

    and when I manually execute these commands,

    setenv mmcdev 0
    setenv bootpart 0
    boot

    It can enter the system successfully,But I hope it can successfully enter the system by itself.

    Best Regards,

    Meng

  • Hello Meng,

    When you are booting with EMMC, do you still have an SD card plugged in? If not, what happens when you remove the SD card? Are you still able to get to uboot?

    Regards,

    Nick

  • Hello Nick,

    In the previous question, I have removed the SD card

    It will try to boot from the SD card, but it can't find the SD card, and then enter UBOOT

    Here is log in terminal:


    U-Boot SPL 2024.04-ti-dirty (Apr 19 2025 - 19:10:12 +0800)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    SPL initial stack usage: 13568 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...

    NOTICE: BL31: v2.11.0(release):v2.11.0-906-g58b25570c9-dirty
    NOTICE: BL31: Built : 04:20:32, Nov 1 2024

    U-Boot SPL 2024.04-ti-dirty (Apr 19 2025 - 19:10:08 +0800)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    Trying to boot from MMC1
    Authentication passed
    Authentication passed


    U-Boot 2024.04-ti-dirty (Apr 19 2025 - 19:10:08 +0800)

    SoC: AM62AX SR1.0 HS-FS
    Model: Texas Instruments AM62A7 SK
    DRAM: 2 GiB (effective 4 GiB)
    Core: 87 devices, 30 uclasses, devicetree: separate
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In: serial@2800000
    Out: serial@2800000
    Err: serial@2800000
    Net: eth0: ethernet@8000000port@1
    Hit any key to stop autoboot: 0
    MMC: no card present
    MMC: no card present
    ** Bad device specification mmc 1 **
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    Bad Linux ARM64 Image magic!
    Scanning for bootflows in all bootdevs
    Seq Method State Uclass Part Name Filename
    --- ----------- ------ -------- ---- ------------------------ ----------------
    Scanning global bootmeth 'efi_mgr':
    MMC: no card present
    No EFI system partition
    No EFI system partition
    Failed to persist EFI variables
    No EFI system partition
    Failed to persist EFI variables
    No EFI system partition
    Failed to persist EFI variables
    0 efi_mgr ready (none) 0 <NULL>
    ** Booting bootflow '<NULL>' with efi_mgr
    Loading Boot0000 'mmc 0' failed
    EFI boot manager: Cannot load any image
    Boot failed (err=-14)
    Scanning bootdev 'mmc@fa00000.bootdev':
    MMC: no card present
    MMC: no card present
    MMC: no card present
    MMC: no card present
    Scanning bootdev 'mmc@fa10000.bootdev':
    Bus usb@31100000: generic_phy_get_bulk : no phys property
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31100000 for devices... 1 USB Device(s) found
    link up on port 1, speed 100, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    *** Unhandled DHCP Option in OFFER/ACK: 213
    DHCP client bound to address 192.168.101.233 (2249 ms)
    Scanning bootdev 'port@1.bootdev':
    missing environment variable: pxeuuid
    Retrieving file: pxelinux.cfg/01-1c-63-49-1e-8e-98
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C0A865E9
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C0A865E
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C0A865
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C0A86
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C0A8
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C0A
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C0
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/C
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default-arm-k3-am62ax
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default-arm-k3
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default-arm
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Retrieving file: pxelinux.cfg/default
    link up on port 1, speed 100, full duplex
    *** ERROR: `serverip' not set
    Scanning bootdev 'port@1.bootdev':
    link up on port 1, speed 100, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    *** Unhandled DHCP Option in OFFER/ACK: 213
    DHCP client bound to address 192.168.101.233 (401 ms)
    *** ERROR: `serverip' not set
    Cannot autoload with TFTPGET
    No more bootdevs
    --- ----------- ------ -------- ---- ------------------------ ----------------
    (1 bootflow, 1 valid)
    =>

    
    

    Best Regards,

    Meng

  • Hello Meng,

    I am passing your thread to another team member for further comment. Feel free to ping the thread if you do not get a response within a couple of days.

    Regards,

    Nick

  • Hello,

    It can enter the system successfully,But I hope it can successfully enter the system by itself.

    For automatically booting Linux from eMMC, you would have to apply the following patch in the U-Boot source code:

    diff --git a/board/ti/am62x/am62x.env b/board/ti/am62x/am62x.env
    index 60b5fd5e6ca..6d6ccada945 100644
    --- a/board/ti/am62x/am62x.env
    +++ b/board/ti/am62x/am62x.env
    @@ -16,8 +16,8 @@ run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
     
     boot_targets=mmc1 mmc0 usb pxe dhcp
     boot=mmc
    -mmcdev=1
    -bootpart=1:2
    +mmcdev=0
    +bootpart=0:1
     bootdir=/boot
     rd_spec=-
     
    

    Regards,

    Prashant

  • Hi Prashant

    It works! Thank you very much!

    Best Regards,

    Meng