Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

AM625: How to make emmc boot in AM625 platform

Part Number: AM625

Dear TI ,

HW platform : TI AM625

SW version : (8.6.0.42)

I refer to the following url :

https://dev.ti.com/tirex/explore/node?node=A__AHRrRyaBVyh3lIzvQ8a6tQ__linux_academy_am62x__XaWts8R__LATEST&search=am62x

I don't want to put u-boot image to /dev/mmcblk0boot0 .  I want to copy u-boot image to /dev/mmcblk0 .(emmc : non-boot0)

I want to know how to implement .

(1) Set the switch (B0-B15) : XXXXXXXX XXXXXXXX

(2) How to run u-boot command to make it boot from emmc?

  • Hi,

    1. Here are some instructions: https://dev.ti.com/tirex/explore/node?node=A__AHRrRyaBVyh3lIzvQ8a6tQ__linux_academy_am62x__XaWts8R__LATEST

    2. Since you do not want to boot from /dev/mmcblk0boot0 at all. Then create 2 partition in eMMC UDA instead of one. Or verify that they are already existing in eMMC. /dev/mmcblk0p1 and /dev/mmcblk0p2. If you have to create the partitions, format with:
    mkfs -t vfat /dev/mmcblk0p1
    mkfs -t ext4 /dev/mmcblk0p2

    3. Copy the bootloaders to the first partition (fs mode) from userspace.

    4. Follow the link to flash rootfs to the second partition.

    5. Reboot the board & in u-boot do:
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => setenv bootpart 0:2

    6. Shutoff the board & set boot mode switch settings:

    SW2:00000000  SW3:01000010

    Let me know if this works.

    ~ Judith

  • Dear TI ,

    (1) Is this method applicable to AM62x GP devices?
    (2) I only see switch1 and switch2 . Where is switch3 ?

  • HI,

    The SW # was copied, please use:
    SW2:00000000  SW1:01000010

    Also please refer to the TRM section 5-4 Primary Boot Mode Selection

    ~ Judith

  • Hi,
    Now I use Processor SDK Linux for AM62x 09.00.00.03

    Follow up step.

    When I flash U-Boot to eMMC,the /dev/mmcblk0p1 filesystem type is bad.

    And switch to eMMC boot mode show error.

  • Hi,

    Will try on my end to see if I can replicate your issue.

    ~ Judith

  • Hi,

    I do not understand, are you using FS mode or raw mode in UDA? If using RAW mode, they you are correct about the commands you are using except the mount command and you do not format the partitions using ext4 and vfat type file systems. If you are trying to use FS mode, then yes format the partition and please simply copy and paste each of the binaries to the partition once mounted. So please clarify, are you trying to use fs mode or faw mode in UDA?

    ~ Judith

  • Hi,

    I update my details step on below.

    flush_cache () {
    	sync
    	blockdev --flushbufs /dev/mmcblk0
    }
    
    
    echo "partition_drive"
    echo "Part1..."
    LC_ALL=C sgdisk --zap-all --clear "/dev/mmcblk0" > /dev/null 2>&1 || true
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    echo "Part2..."
    LC_ALL=C sgdisk -n 1:8192:+128MiB -t 1:0c00 -c 1:"boot" -u 1:88B08C42-0C03-4BD5-8171-13F8D8E0433B "${destination}"
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    echo "Part3..."
    LC_ALL=C sgdisk -n 2:: -t 2:8300 -c 2:"rootfs" -A 2:set:2 -u 2:BC13C2FF-59E6-4262-A352-B275FD6F7172 "${destination}" 
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    
    
    echo "format partitions"
    mkfs.vfat /dev/mmcblk0p1
    mkfs.ext4 /dev/mmcblk0p2
    
    echo "write bootloader into eMMC..."
    dd if=/opt/images/tiboot3.bin of=/dev/mmcblk0p1 seek=0
    dd if=/opt/images/tispl.bin of=/dev/mmcblk0p1 seek=1024
    dd if=/opt/images/u-boot.img of=/dev/mmcblk0p1 seek=5120
    
    echo "write Root Filesystem into eMMC..."
    mkdir -p /mnt/temp
    mount -t ext4 /dev/mmcblk0p2 /mnt/temp
    tar -C /mnt/temp -xf /opt/images/tisdk-default-image-am62xx-evm.tar.xz
    umount /mnt/temp
    

    Then follow up...

    5. Reboot the board & in u-boot do:
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => setenv bootpart 0:2

    6. Shutoff the board & set boot mode switch settings:

    SW2:00000000  SW3:01000010

    And show.

    Thanks.

  • Sorry,In code.

    ${destination}="/dev/mmcblk0"

    Thanks.

  • Hi Fox,

    You are mixing up 2 bootmodes here:

    1. SW2:00000000  SW1:01000010 and formating the boot partition are part of the process for MMCSD Boot (eMMC Boot using UDA):




    As you can see by the second image, if the SW2:00000000  SW1:01000010 bit is zero, then we are booting using Filesystem mode.

    And if you google what is a RAW eMMC boot, you will find: A RAW partition is any partition on the eMMC that is not formatted.

    2. It seems like you are trying to use RAW mode. So your switch setting should be: SW2:00000000  SW1:01000011 and do not format the first partition /dev/mmcblk0p1. You only have to create the partition and flash the binaries using the following commands:

    echo "write bootloader into eMMC..."
    dd if=/opt/images/tiboot3.bin of=/dev/mmcblk0p1 seek=0
    dd if=/opt/images/tispl.bin of=/dev/mmcblk0p1 seek=1024
    dd if=/opt/images/u-boot.img of=/dev/mmcblk0p1 seek=5120

    ~ Judith

  • Hi,

    Use Raw mode:

    flush_cache () {
    	sync
    	blockdev --flushbufs /dev/mmcblk0
    }
    
    
    echo "partition_drive"
    echo "Part1..."
    LC_ALL=C sgdisk --zap-all --clear "/dev/mmcblk0" > /dev/null 2>&1 || true
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    echo "Part2..."
    LC_ALL=C sgdisk -n 1:8192:+128MiB -t 1:0c00 -c 1:"boot" -u 1:88B08C42-0C03-4BD5-8171-13F8D8E0433B "/dev/mmcblk0"
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    echo "Part3..."
    LC_ALL=C sgdisk -n 2:: -t 2:8300 -c 2:"rootfs" -A 2:set:2 -u 2:BC13C2FF-59E6-4262-A352-B275FD6F7172 "/dev/mmcblk0"
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    
    
    #echo "format partitions"
    #mkfs.vfat /dev/mmcblk0p1
    
    echo "write bootloader into eMMC..."
    dd if=/opt/images/tiboot3.bin of=/dev/mmcblk0p1 seek=0
    dd if=/opt/images/tispl.bin of=/dev/mmcblk0p1 seek=1024
    dd if=/opt/images/u-boot.img of=/dev/mmcblk0p1 seek=5120

    5. Reboot the board & in u-boot do:
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => setenv bootpart 0:2

    6. Shutoff the board & set boot mode switch settings:

    SW2:00000000  SW3:01000011

    It's same err message,but show more one line.

    Use filesystem mode:

    flush_cache () {
    	sync
    	blockdev --flushbufs /dev/mmcblk0
    }
    
    
    echo "partition_drive"
    echo "Part1..."
    LC_ALL=C sgdisk --zap-all --clear "/dev/mmcblk0" > /dev/null 2>&1 || true
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    echo "Part2..."
    LC_ALL=C sgdisk -n 1:8192:+128MiB -t 1:0c00 -c 1:"boot" -u 1:88B08C42-0C03-4BD5-8171-13F8D8E0433B "/dev/mmcblk0"
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    echo "Part3..."
    LC_ALL=C sgdisk -n 2:: -t 2:8300 -c 2:"rootfs" -A 2:set:2 -u 2:BC13C2FF-59E6-4262-A352-B275FD6F7172 "/dev/mmcblk0"
    sync
    flush_cache
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1 || true
    
    
    echo "format partitions"
    mkfs.vfat -F 16 /dev/mmcblk0p1
    
    echo "write bootloader into eMMC..."
    #dd if=/opt/images/tiboot3.bin of=/dev/mmcblk0p1 seek=0
    #dd if=/opt/images/tispl.bin of=/dev/mmcblk0p1 seek=1024
    #dd if=/opt/images/u-boot.img of=/dev/mmcblk0p1 seek=5120
    mkdir -p /mnt/temp
    mount -t vfat /dev/mmcblk0p1 /mnt/temp
    cp /opt/images/tiboot3.bin /mnt/temp
    cp /opt/images/tispl.bin /mnt/temp
    cp /opt/images/u-boot.img /mnt/temp
    umount /mnt/temp

    5. Reboot the board & in u-boot do:
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => setenv bootpart 0:2

    6. Shutoff the board & set boot mode switch settings:

    SW2:00000000  SW3:01000010

    It's no show any messages.

    Thanks.

  • Hi,

    Here is a reference log:

    root@am62xx-evm:~# lsblk
    NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    mtdblock0     31:0    0   512K  0 disk 
    mtdblock1     31:1    0     2M  0 disk 
    mtdblock2     31:2    0     4M  0 disk 
    mtdblock3     31:3    0   256K  0 disk 
    mtdblock4     31:4    0   256K  0 disk 
    mtdblock5     31:5    0  55.8M  0 disk 
    mtdblock6     31:6    0   256K  0 disk 
    mmcblk0      179:0    0  29.7G  0 disk 
    mmcblk0boot0 179:32   0  31.5M  1 disk 
    mmcblk0boot1 179:64   0  31.5M  1 disk 
    mmcblk1      179:96   0  58.2G  0 disk 
    |-mmcblk1p1  179:97   0 133.6M  0 part /run/media/mmcblk1p1
    `-mmcblk1p2  179:98   0  58.1G  0 part /
    root@am62xx-evm:~# ls
    sdboot	sdroot
    root@am62xx-evm:~# mount /dev/mmcblk1p1 sdboot
    root@am62xx-evm:~# cd sdboot
    root@am62xx-evm:~/sdboot# ls
    4194304    new.txt		     tiboot3-am62x-hs-evm.bin  tispl.bin   uEnv.txt
    linux.txt  tiboot3-am62x-gp-evm.bin  tiboot3.bin	       u-boot.img  wificfg
    root@am62xx-evm:~/sdboot# dd if=tiboot3.bin of=/dev/mmcblk0 seek=0 status=progress
    654+1 records in
    654+1 records out
    335019 bytes (335 kB, 327 KiB) copied, 0.0292826 s, 11.4 MB/s
    root@am62xx-evm:~/sdboot# sync
    root@am62xx-evm:~/sdboot# dd if=tispl.bin of=/dev/mmcblk0 seek=1024 status=progress
    1878+1 records in
    1878+1 records out
    961988 bytes (962 kB, 939 KiB) copied, 0.0659659 s, 14.6 MB/s
    root@am62xx-evm:~/sdboot# dd if=u-boot.img of=/dev/mmcblk0 seek=5120 status=progress
    1753+1 records in
    1753+1 records out
    897880 bytes (898 kB, 877 KiB) copied, 0.0631009 s, 14.2 MB/s
    root@am62xx-evm:~/sdboot# lsblk
    NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    mtdblock0     31:0    0   512K  0 disk 
    mtdblock1     31:1    0     2M  0 disk 
    mtdblock2     31:2    0     4M  0 disk 
    mtdblock3     31:3    0   256K  0 disk 
    mtdblock4     31:4    0   256K  0 disk 
    mtdblock5     31:5    0  55.8M  0 disk 
    mtdblock6     31:6    0   256K  0 disk 
    mmcblk0      179:0    0  29.7G  0 disk 
    mmcblk0boot0 179:32   0  31.5M  1 disk 
    mmcblk0boot1 179:64   0  31.5M  1 disk 
    mmcblk1      179:96   0  58.2G  0 disk 
    |-mmcblk1p1  179:97   0 133.6M  0 part /home/root/sdboot
    `-mmcblk1p2  179:98   0  58.1G  0 part /
    root@am62xx-evm:~/sdboot# 
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:59:23 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    SPL initial stack usage: 13424 bytes
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment
    
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 05:06:58, Feb 24 2023
    
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    
    
    U-Boot 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 0x50, trying to read at 0x51
    Board: AM62B-SKEVM-P1 rev A
    DRAM:  2 GiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Unidentified board claims AM62B-SKEVM-P1 in eeprom header
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0 
    => 
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => 
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:59:23 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    SPL initial stack usage: 13424 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Loading Environment from MMC... OK
    init_env from device 9 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 05:06:58, Feb 24 2023
    
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 0x50, trying to read at 0x51
    Board: AM62B-SKEVM-P1 rev A
    DRAM:  2 GiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Unidentified board claims AM62B-SKEVM-P1 in eeprom header
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0 
    => 
    => 


    You should get up to u-boot with this method.

    So in summary,

    1. Do not create 2 partitions in UDA. For SDMMC Boot (from eMMC UDA) in RAW mode, ROM will look for tiboot3.bin in address 0x0 of UDA. So you either have tiboot3.bin at 0x0 address or you have the MBR partition table in address 0x0 of UDA. If you have the partition table, ROM will not find tiboot3.bin at address 0x0 for SDMMC Boot (from eMMC UDA) in RAW mode.
    2. It seems like this boot mode is similar to booting with boot0 or boot1. If you wish to boot to Linux prompt I suggest using boot0 or boot1 for bootloaders and UDA for rootfs. Or, SDMMC boot (from eMMC UDA) in FS mode where you can create 2 partitions in UDA and format the first with FAT32 FS and the second with ext4 FS.

    ~ Judith

  • Hi,

    1. Use 1 partitions in UDA. For SDMMC Boot (from eMMC UDA) in RAW mode is work.

    2.But I need 2 partitions in UDA,one for boot and one for rootfs.

    then I use fs mode:

    LC_ALL=C sgdisk --zap-all --clear "/dev/mmcblk0" > /dev/null 2>&1
    dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1 > /dev/null 2>&1
    
    LC_ALL=C sgdisk -n 1:0:+128MiB -t 1:0700 -c 1:"boot" /dev/mmcblk0
    LC_ALL=C sgdisk -n 2:: -t 2:8300 -c 2:"root" /dev/mmcblk0
    
    mkfs.vfat -F 32 /dev/mmcblk0p1
    mkfs.ext4 /dev/mmcblk0p2
    
    mkdir -p /mnt/temp
    mount -t vfat /dev/mmcblk0p1 /mnt/temp
    cp /opt/images/tiboot3.bin /mnt/temp
    cp /opt/images/tispl.bin /mnt/temp
    cp /opt/images/u-boot.img /mnt/temp
    umount /mnt/temp

    5. Reboot the board & in u-boot do:
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => setenv bootpart 0:2

    6. Shutoff the board & set boot mode switch settings:

    SW2:00000000  SW3:01000010

    It's no show any messages on console.

    I check the format is correct.

    Thanks.

  • Hi,

    Understood you are trying to boot with SDMMC Boot (from eMMC UDA) in FS mode now. Please verify you are using MBR partition tables and bootable flag in /dev/mmcblk0p1 partition is set, reference log below:

    root@am62xx-evm:~# lsblk
    NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    mtdblock0     31:0    0   512K  0 disk 
    mtdblock1     31:1    0     2M  0 disk 
    mtdblock2     31:2    0     4M  0 disk 
    mtdblock3     31:3    0   256K  0 disk 
    mtdblock4     31:4    0   256K  0 disk 
    mtdblock5     31:5    0  55.8M  0 disk 
    mtdblock6     31:6    0   256K  0 disk 
    mmcblk0      179:0    0  29.7G  0 disk 
    mmcblk0boot0 179:32   0  31.5M  1 disk 
    mmcblk0boot1 179:64   0  31.5M  1 disk 
    mmcblk1      179:96   0  58.2G  0 disk 
    |-mmcblk1p1  179:97   0 133.6M  0 part /run/media/mmcblk1p1
    `-mmcblk1p2  179:98   0  58.1G  0 part /
    root@am62xx-evm:~# fdisk /dev/mmcblk0
    
    Welcome to fdisk (util-linux 2.35.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0xc7818a06.
    
    Command (m for help): o
    Created a new DOS disklabel with disk identifier 0x850b0832.
    
    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): 
    
    Using default response p.
    Partition number (1-4, default 1): 
    First sector (2048-62160895, default 2048): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-62160895, default 62160895): +300M
    
    Created a new partition 1 of type 'Linux' and of size 300 MiB.
    
    Command (m for help): t
    Selected partition 1
    Hex code (type L to list all codes): c
    Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.
    
    Command (m for help): n
    Partition type
       p   primary (1 primary, 0 extended, 3 free)
       e   extended (container for logical partitions)
    Select (default p): 
    
    Using default response p.
    Partition number (2-4, default 2): 
    First sector (616448-62160895, default 616448): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (616448-62160895, default 62160895): 
    
    Created a new partition 2 of type 'Linux' and of size 29.4 GiB.
    
    Command (m for help): a
    Partition number (1,2, default 2): 1
    
    The bootable flag on partition 1 is enabled now.
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.[  229.999901]  mmcblk0: p1 p2
    
    Syncing disks.
    
    root@am62xx-evm:~# lsblk
    NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    mtdblock0     31:0    0   512K  0 disk 
    mtdblock1     31:1    0     2M  0 disk 
    mtdblock2     31:2    0     4M  0 disk 
    mtdblock3     31:3    0   256K  0 disk 
    mtdblock4     31:4    0   256K  0 disk 
    mtdblock5     31:5    0  55.8M  0 disk 
    mtdblock6     31:6    0   256K  0 disk 
    mmcblk0      179:0    0  29.7G  0 disk 
    |-mmcblk0p1  179:1    0   300M  0 part 
    `-mmcblk0p2  179:2    0  29.4G  0 part 
    mmcblk0boot0 179:32   0  31.5M  1 disk 
    mmcblk0boot1 179:64   0  31.5M  1 disk 
    mmcblk1      179:96   0  58.2G  0 disk 
    |-mmcblk1p1  179:97   0 133.6M  0 part /run/media/mmcblk1p1
    `-mmcblk1p2  179:98   0  58.1G  0 part /
    root@am62xx-evm:~# ls
    root@am62xx-evm:~# mkdir sdboot
    root@am62xx-evm:~# mkdir emmcboot
    root@am62xx-evm:~# sudo mkfs -t vfat /dev/mmcblk0p1
    mkfs.fat 4.1 (2017-01-24)
    root@am62xx-evm:~# sudo mkfs -t ext4 /dev/mmcblk0p2
    mke2fs 1.45.7 (28-Jan-2021)
    Discarding device blocks: done                            
    Creating filesystem with 7693056 4k blocks and 1925120 inodes
    Filesystem UUID: ba391073-e931-4f90-8156-d19a2d0721b2
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    	4096000
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done   
    
    root@am62xx-evm:~# mount /dev/mmcblk0p1 emmcboot/
    root@am62xx-evm:~# cd sdboot/
    root@am62xx-evm:~/sdboot# ls
    4194304  linux.txt  new.txt  tiboot3-am62x-gp-evm.bin  tiboot3-am62x-hs-evm.bin  tiboot3.bin  tispl.bin  u-boot.img  uEnv.txt  wificfg
    root@am62xx-evm:~/sdboot# cp tiboot3.bin tispl.bin u-boot.img ../emmcboot/
    root@am62xx-evm:~/sdboot# cd ../
    root@am62xx-evm:~# umount emmcboot/
    root@am62xx-evm:~# umount sdboot/
    root@am62xx-evm:~# 
    root@am62xx-evm:~# fdisk -l
    ........
    
    Disk /dev/mmcblk0: 29.66 GiB, 31826378752 bytes, 62160896 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x850b0832
    
    Device         Boot  Start      End  Sectors  Size Id Type
    /dev/mmcblk0p1 *      2048   616447   614400  300M  c W95 FAT32 (LBA)
    /dev/mmcblk0p2      616448 62160895 61544448 29.4G 83 Linux
    
    
    Disk /dev/mmcblk1: 58.25 GiB, 62537072640 bytes, 122142720 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xc879998c
    
    Device         Boot  Start       End   Sectors   Size Id Type
    /dev/mmcblk1p1 *      2048    275571    273524 133.6M  c W95 FAT32 (LBA)
    /dev/mmcblk1p2      276480 122142719 121866240  58.1G 83 Linux
    root@am62xx-evm:~# 
    
    
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:59:23 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    SPL initial stack usage: 13424 bytes
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment
    
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 05:06:58, Feb 24 2023
    
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    
    
    U-Boot 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 0x50, trying to read at 0x51
    Board: AM62B-SKEVM-P1 rev A
    DRAM:  2 GiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Unidentified board claims AM62B-SKEVM-P1 in eeprom header
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0 
    => 
    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => 
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:59:23 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    SPL initial stack usage: 13424 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Loading Environment from MMC... OK
    init_env from device 9 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 05:06:58, Feb 24 2023
    
    U-Boot SPL 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2021.01-g2ee8efd654 (Feb 24 2023 - 05:29:33 +0000)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 0x50, trying to read at 0x51
    Board: AM62B-SKEVM-P1 rev A
    DRAM:  2 GiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Unidentified board claims AM62B-SKEVM-P1 in eeprom header
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0 
    => 
    


    ~ Judith

  • Hi,

    1.Now use fdisk to create 2 partitions in UDA.
    and put tiboot3.bin/tispl.bin/u-boot.img in /dev/mmcblk0p1
    untar tisdk-default-image-am62xx-evm.tar.xz in /dev/mmcblk0p2
    2. And set uboot

    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    Set to BOOT_BUS_WIDTH = 0x2, RESET = 0x0, BOOT_MODE = 0x0
    => setenv mmcdev 0
    => setenv bootpart 0
    => printenv dfu_alt_info_mmc
    dfu_alt_info_mmc=boot part 1 1; rootfs part 1 2; tiboot3.bin fat 1 1; tispl.bin fat 1 1; u-boot.img fat 1 1; uEnv.txt fat 1 1; sysfw.itb fat 1 1
    => mmc list
    mmc@fa10000: 0 (eMMC)
    mmc@fa00000: 1
    => mmc part
    Partition Map for MMC device 0  --   Partition Type: DOS
    
    Part    Start Sector    Num Sectors     UUID            Type
      1     2048            614400          10b47018-01     0c Boot
      2     616448          21805056        10b47018-02     83
    => boot
       
      
    switch to partitions #0, OK
    mmc0(part 0) is current device
    SD/MMC found on device 0
    Failed to load 'boot.scr'
    Failed to load 'uEnv.txt'
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    Failed to load '/boot/Image'
    Failed to load '/boot/dtb/ti/k3-am625-sk.dtb'
    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!
    switch to partitions #0, OK
    mmc0(part 0) is current device
    Scanning mmc 0:1...
    MMC: no card present
    No EFI system partition
    No EFI system partition
    Failed to persist EFI variables
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    BootOrder not defined
    EFI boot manager: Cannot load any image
    MMC: no card present
    starting USB...
    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... usb_new_device: Cannot read configuration, skipping device 05e3:0610
    1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    
    Device 0: unknown device
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    "Synchronous Abort" handler, esr 0x86000004
    elr: 3030302fb14e8840 lr : 3030302fb14e8840 (reloc)
    elr: 3030303030303840 lr : 3030303030303840
    x0 : 00000000ffffffed x1 : 0000000000000000
    x2 : 0000000000000040 x3 : 00000000fd6120e0
    x4 : 00000000ff6db058 x5 : 00000000fd6121b0
    x6 : 0000000000000021 x7 : 00000000fd61aa80
    x8 : 000000000000ffff x9 : 0000000000000008
    x10: 00000000ffffffd8 x11: 000000000000000a
    x12: 0000000000005b3c x13: 00000000fd5ea138
    x14: 00000000fd5ebf20 x15: 0000000000000002
    x16: 00000000ff675774 x17: 0000000000000000
    x18: 00000000fd5fbd80 x19: 0000314074726f70
    x20: 00000000ff6fc000 x21: 00000000ff6ff000
    x22: 0000000000000004 x23: 00000000ff6fc000
    x24: 0000000000000000 x25: 00000000ff6ff000
    x26: 00000000ff6fd000 x27: 0000000000000000
    x28: 00000000fd6145d0 x29: 74656e7265687465
    
    Code: "Synchronous Abort" handler, esr 0x96000004
    elr: 0000000080802b08 lr : 0000000080802ae8 (reloc)
    elr: 00000000ff61db08 lr : 00000000ff61dae8
    x0 : 00000000ff6c3ded x1 : 0000000000000000
    x2 : 0000000000000020 x3 : 0000000002800000
    x4 : 0000000002800000 x5 : 00000000fd5e9cc3
    x6 : 0000000000000035 x7 : 00000000fd5ea150
    x8 : 0000000000000001 x9 : 0000000000000008
    x10: 00000000ffffffe8 x11: 0000000000000010
    x12: 000000000001869f x13: 00000000fd5ea138
    x14: 00000000fd5ebf20 x15: 0000000000000021
    x16: 00000000ff675774 x17: 0000000000000000
    x18: 00000000fd5fbd80 x19: 3030303030303830
    x20: 00000000ff6cc09f x21: 00000000fffffffc
    x22: 00000000ff6cd9ac x23: 00000000ff6c3ded
    x24: 0000000000000000 x25: 00000000ff6ff000
    x26: 00000000ff6fd000 x27: 0000000000000000
    x28: 00000000fd6145d0 x29: 00000000fd5ea150
    
    Code: d1004273 9126b2d6 aa0003f7 12800075 (b9400261)
    Resetting CPU ...
    
    resetting ...
    
    U-Boot SPL 2023.04 (Aug 16 2023 - 13:04:52 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    SPL initial stack usage: 13376 bytes
    Trying to boot from MMC1
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 00:42:57, Jan 13 2023
    
    U-Boot SPL 2023.04 (Aug 16 2023 - 13:05:00 +0800)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    SPL initial stack usage: 1856 bytes
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:1
    Error: could not access storage.
    Trying to boot from MMC1
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    
    
    U-Boot 2023.04 (Aug 16 2023 - 13:05:00 +0800)
    
    SoC:   AM62X SR1.0 GP
    Model: Texas Instruments AM625 SK
    EEPROM not available at 80, trying to read at 81
    Reading on-board EEPROM at 0x51 failed -1
    DRAM:  2 GiB
    Core:  71 devices, 31 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial
    Out:   serial
    Err:   serial
    EEPROM not available at 80, trying to read at 81
    Reading on-board EEPROM at 0x51 failed -1
    Net:   Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed
    No ethernet found.
    
    Hit any key to stop autoboot:  0
    MMC: no card present
    SD/MMC found on device 1
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1
    Can't set block device
    MMC: no card present
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1
    Can't set block device
    MMC: no card present
    ** Bad device specification mmc 1 **
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    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!
    switch to partitions #0, OK
    mmc0(part 0) is current device
    Scanning mmc 0:1...
    MMC: no card present
    No EFI system partition
    No EFI system partition
    Failed to persist EFI variables
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    BootOrder not defined
    EFI boot manager: Cannot load any image
    MMC: no card present
    starting USB...
    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... usb_new_device: Cannot read configuration, skipping device 05e3:0610
    1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    
    Device 0: unknown device
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000ethernet@8000000port@1: phy_connect() failed
    "Synchronous Abort" handler, esr 0x86000004
    elr: 3030302fb14e8840 lr : 3030302fb14e8840 (reloc)
    elr: 3030303030303840 lr : 3030303030303840
    x0 : 00000000ffffffed x1 : 0000000000000000
    x2 : 00000000000000f1 x3 : 00000000fd614600
    x4 : 00000000ff6db058 x5 : 00000000fd6146a0
    x6 : 00000000ff6db068 x7 : 00000000fd61a500
    x8 : 000000000000ffff x9 : 0000000000000008
    x10: 00000000ffffffd8 x11: 000000000000000a
    x12: 0000000000005b3c x13: 00000000fd5ea318
    x14: 00000000fd5ebf20 x15: 0000000000000002
    x16: 00000000ff675774 x17: 0000000000000000
    x18: 00000000fd5fbd80 x19: 0000314074726f70
    x20: 00000000ff6fc000 x21: 00000000ff6ff000
    x22: 0000000000000004 x23: 00000000ff6fc000
    x24: 0000000000000000 x25: 00000000ff6ff000
    x26: 00000000ff6fd000 x27: 0000000000000000
    x28: 00000000fd611db0 x29: 74656e7265687465
    
    Code: "Synchronous Abort" handler, esr 0x96000004
    elr: 0000000080802b08 lr : 0000000080802ae8 (reloc)
    elr: 00000000ff61db08 lr : 00000000ff61dae8
    x0 : 00000000ff6c3ded x1 : 0000000000000000
    x2 : 0000000000000020 x3 : 0000000002800000
    x4 : 0000000002800000 x5 : 00000000fd5e9ea3
    x6 : 0000000000000035 x7 : 00000000fd5ea330
    x8 : 0000000000000001 x9 : 0000000000000008
    x10: 00000000ffffffe8 x11: 0000000000000010
    x12: 000000000001869f x13: 00000000fd5ea318
    x14: 00000000fd5ebf20 x15: 0000000000000021
    x16: 00000000ff675774 x17: 0000000000000000
    x18: 00000000fd5fbd80 x19: 3030303030303830
    x20: 00000000ff6cc09f x21: 00000000fffffffc
    x22: 00000000ff6cd9ac x23: 00000000ff6c3ded
    x24: 0000000000000000 x25: 00000000ff6ff000
    x26: 00000000ff6fd000 x27: 0000000000000000
    x28: 00000000fd611db0 x29: 00000000fd5ea330
    
    Code: d1004273 9126b2d6 aa0003f7 12800075 (b9400261)
    Resetting CPU ...
    
    resetting ...
    
    

    It can't boot in OS.
    I had check https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_00_00_03/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html

    Is any setting or file need?

    Thanks.

  • Hi Fox,

    If you are using Processor SDK 9.0 and TI EVm, it should work. Please provide full log where you prepare and flash to eMMC. Thanks.

    ~ Judith

  • Hi,

    I using Processor SDK 9.0 and customize bord with am6254.
    Now in u-boot mode I using the follow cmd then I can into the Debian12 OS.

    => mmc partconf 0 1 7 1
    => mmc bootbus 0 2 0 0
    => setenv mmcdev 0
    => setenv bootpart 0:2
    => run update_to_fit
    => run findfdt
    => run loadimage
    => run mmcboot
    => boot

    1.How to use this env when I boot from eMMC?

    2.In eMMC boot on Debian12 is randow show the message but not in SDcard boot.

    [ 146.775093] cpufreq: __target_index: Failed to change cpu frequency: -34
    [ 148.751109] cpu cpu0: dev_pm_opp_set_rate: failed to find OPP for freq 1404000000 (-34)

    Thanks.

  • Hi Fox,

    The cpufreq is an issue with DM firmware, I have already created a bug for this issue. However, it seems like the fix is currently blocked by SYSFW.

    You can always save your u-boot environment in uEnv.txt.

    ~ Judith

  • Hi,

    1.

    I want to use "saveenv",but show there is no 'saveenv' cmd.

    Reference e2e other Questions add cfg .

    CONFIG_ENV_IS_IN_MMC=y
    CONFIG_SYS_MMC_ENV_PART=1

    But make u-boot ask Environment offset (ENV_OFFSET) [] (NEW)

    How many should I set?

    2.

    After Step1. I use saveenv cmd in u-boot mode will show:

    => saveenv
    Saving Environment to MMC... Writing to MMC(0)... MMC: block number 0x4120f8 exceeds max(0x2000)
    failed
    Failed (1)

    What should I do?

    Thanks.

  • Hi Fox,

    1. yes those environment variables should be correct.

    environment offset should be  documented here: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_00_00_03/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html?highlight=emmc#booting-tiboot3-bin-tispl-bin-and-u-boot-img-from-emmc-boot-partition-for-k3-class-of-socs.

    Please let me know if this work, if not, to try it on my end.

    2. I understand you on 9.0 SDK, how are you building u-boot? Did you try booting with default image to see if this error shows? Also, since this is custom board, did you refer the following doc (schematic checklist) : https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1184006/faq-am623-custom-board-hardware-design-collaterals-to-get-started.

    ~ judith

  • Hi,

    1.

    I check spec only give  boot0 address ,not in UDA.

    I use 0x3400 is same situation.

    2.

    a.get SDcard image and burn in SDcard

       tisdk-debian-bookworm-am62xx-evm.wic.xz

    b.get SDK 9 and install

       ti-processor-sdk-linux-am62xx-evm-09.00.00.03-Linux-x86-Install.bin

    c.modify board-support\ti-u-boot\configs\am62x_evm_a53_defconfig

     +CONFIG_ENV_IS_IN_MMC=y
     +CONFIG_SYS_MMC_ENV_PART=1

    d.make u-boot

    make u-boot
    make u-boot_stage
    sudo DESTDIR=/media/$USER/boot PLATFORM=am62xx-evm make u-boot_install
    #make u-boot_clean
    sudo cp board-support/built-images/tiboot3-am62*-gp-evm.bin /media/$USER/boot/tiboot3.bin
    sudo cp board-support/built-images/u-boot.img board-support/built-images/tispl.bin /media/$USER/boot

    e.Then boot in SDcard is success,but boot in eMMC will encounter the previous situation.

    3.

    Because I cant set env with "saveenv" ,so I directly set the env in mmc.env.

    Now I can boot Debian12 on eMMC mode.

    But if you know how to solve and  set "saveenv",please let me know.

    Thanks.

  • Hi,

    ok, understood you are building Debian and saveenv is not working. I will build on my end and get back to you.

    ~ Judith

  • Hi,

    Please revert the following commit in 9.0 SDK to be able to use 'saveenv' command.

    git.ti.com/.../

    However, we advise against it, and use instead uEnv.txt as documented here:

    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/commit/?h=ti-u-boot-2023.04-next&id=949e9cf709391136aa9a7a7f2c2215a9855261ef

    Writing to MMC/EMMC
       => env export -t $loadaddr
       => fatwrite mmc ${mmcdev} ${loadaddr} ${bootenvfile} ${filesize}

    Reading from MMC/EMMC
    By default run envboot will read it from the MMC/EMMC partition ( based on
    mmcdev) and set the environments.
    If manually needs to be done then the environment can be read from the
    filesystem and then imported

       => fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
       => env import -t ${loadaddr} ${filesize}

    ~ Judith