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.
Tool/software:
Hi TI Teams:
Our custom boards, based on AM6254ATGFHIAMCRQ1, are equiqed with eMMC by the interface of MMC 0 and do not have SD card. We want to boot from eMMC and use USB DFU to fixed the uboot and Linux Image to eMMC. So we will fix the boot mode switch where the Primary Boot Mode is selected to USB DFU and the Backup Mode is selected to MMCSD BOOT finally, according to the documents "AM62x Processors Silicon Revision 1.0-Texas Instruments Families of Products-Technical Reference Manual" . So we test our idea on AM62x-SK-EVM board right now because it can change the boot mode.
According to the reference manual, the primary mode of usb dfu will switch to backup mode MMCSD after 1 min without any dfu operations. It works well according to our tests.
But the question is that the MMCSD boot mode (eMMC iusing UDA) as backup mode need to be fat filesystem mode. So we firstly test that the EVM board boot from primary mode of MMCSD (eMMC using UDA) mode, including Fs or RAW mode, now it does not work well. Our question is how to boot by primary MMCSD (eMMC using UDA) mode and with Filesystem mode.
The following is out test record, we use ti sdk 10 (ti-processor-sdk-linux-rt-am62xx-evm-10.00.07.04-Linux-x86-Install).
1. The boot mode switch B15 ~ B0 is set to be "0000 0000 1100 1010", and using dfu-util to excute dfu uboot
$ sudo dfu-util -l sudo dfu-util -l dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Found DFU: [0451:6165] ver=0200, devnum=109, cfg=1, intf=0, path="1-1", alt=1, name="SocId", serial="01.00.00.00" Found DFU: [0451:6165] ver=0200, devnum=109, cfg=1, intf=0, path="1-1", alt=0, name="bootloader", serial="01.00.00.00" $ sudo dfu-util -R -a bootloader -D tiboot3.bin dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 512 Copying data from PC to DFU device Download [=========================] 100% 310782 bytes Download done. DFU state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present dfu-util: unable to read DFU status after completion (LIBUSB_ERROR_IO) $ sudo dfu-util -R -a tispl.bin -D tispl.bin dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 1111383 bytes Download done. DFU state(7) = dfuMANIFEST, status(0) = No error condition is present DFU state(2) = dfuIDLE, status(0) = No error condition is present Done! Resetting USB to switch back to Run-Time mode $ sudo dfu-util -R -a u-boot.img -D u-boot.img dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #1 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 1011643 bytes Download done. DFU state(7) = dfuMANIFEST, status(0) = No error condition is present DFU state(2) = dfuIDLE, status(0) = No error condition is present Done! Resetting USB to switch back to Run-Time mode
2. After DFU uboot, the board can excute u-boot, then we set the eMMC partitions on host pc by terminal serial. The log is shown as following.
U-Boot SPL 2024.04-dirty (Dec 18 2024 - 08:25:16 +0800) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 13392 bytes Trying to boot from DFU #######################################################DOWNLOAD ... OK Ctrl+C to exit ... Authentication passed Authentication passed Authentication passed Loading Environment from nowhere... OK init_env from device 10 not supported! Authentication passed Authentication passed Starting ATF on ARM64 core... NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty NOTICE: BL31: Built : 16:09:05, Feb 9 2024 U-Boot SPL 2024.04-dirty (Dec 18 2024 - 08:25:40 +0800) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 1904 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 DFU ####DOWNLOAD ... OK Ctrl+C to exit ... Authentication passed Authentication passed U-Boot 2024.04-dirty (Dec 18 2024 - 08:25:40 +0800) SoC: AM62X SR1.0 HS-FS Model: Texas Instruments AM625 SK EEPROM not available at 0x50, trying to read at 0x51 Reading on-board EEPROM at 0x51 failed -121 DRAM: 2 GiB Core: 81 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 0x50, trying to read at 0x51 Net: eth0: ethernet@8000000port@1 Hit any key to stop autoboot: 0 => mmc erase 0 31080414 MMC erase: dev # 0, block # 0, count 822608916 ... 822608916 blocks erased: OK => mmc part Partition Map for MMC device 0 -- Partition Type: EFI => setenv uuid_gpt_disk d0d46e06-a5cd-4b8b-86a8-fde73e615209 => setenv uuid_gpt_boot 3933c871-f89a-4814-8ca8-6185f8a84ed2 => setenv uuid_gpt_rootfs 3833cc7a-73fe-4d04-b850-b01cb832fcbb => setenv partitions "uuid_disk=${uuid_gpt_disk};name=boot,start=2MiB,size=128MiB,uuid=${uuid_gpt_boot}" => gpt write mmc 0 ${partitions} Writing GPT: success! => setenv mmcdev 0 => setenv dfu_alt_info "boot part 0 1;rootfs part 0 2;MLO fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1" => setenv bootpart 0 => dfu 0 mmc 0 list DFU alt settings list: dev: eMMC alt: 0 name: boot layout: RAW_ADDR dev: eMMC alt: 1 name: rootfs layout: RAW_ADDR dev: eMMC alt: 2 name: MLO layout: FAT dev: eMMC alt: 3 name: u-boot.img layout: FAT dev: eMMC alt: 4 name: uEnv.txt layout: FAT => ls mmc 0:1 => ls mmc 0:2 => dfu 0 mmc 0 generic_phy_get_bulk : no phys property => mmc part Partition Map for MMC device 0 -- Partition Type: EFI Part Start LBA End LBA Name Attributes Type GUID Partition GUID 1 0x00001000 0x00040fff "boot" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 3933c871-f89a-4814-8ca8-6185f8a84ed2 2 0x00041000 0x00240fff "rootfs" attrs: 0x0000000000000000 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 guid: 3833cc7a-73fe-4d04-b850-b01cb832fcbb => mmc list mmc@fa10000: 0 (eMMC) mmc@fa00000: 1 => dfu 0 mmc 0 generic_phy_get_bulk : no phys property ##dfu: fs_set_blk_dev error! Deferred dfu_flush() failed!dfu - Device Firmware Upgrade Usage: dfu <USB_controller> [<interface> <dev>] [list] - device firmware upgrade via <USB_controller> on device <dev>, attached to interface <interface> [list] - list available alt settings => dfu 0 mmc 0 generic_phy_get_bulk : no phys property
3. After setting eMMC partitions, we download the tiboot3.bin, tispl.bin, u-boot.img to eMMC through the dfu-utils.
$ sudo dfu-util -a boot -D tiboot3.bin dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 292202 bytes Download done. DFU state(7) = dfuMANIFEST, status(0) = No error condition is present DFU state(2) = dfuIDLE, status(0) = No error condition is present Done! $udo dfu-util -a boot -D tispl.bin dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 1102375 bytes Download done. DFU state(7) = dfuMANIFEST, status(0) = No error condition is present DFU state(2) = dfuIDLE, status(0) = No error condition is present Done! $sudo dfu-util -a boot -D u-boot.img dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 994723 bytes Download done. DFU state(7) = dfuMANIFEST, status(0) = No error condition is present DFU state(2) = dfuIDLE, status(0) = No error condition is present Done! $sudo dfu-util -a rootfs -D tisdk-base.ext4 dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device... Device ID 0451:6165 Device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Interface #1 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0110 Device returned transfer size 4096 Copying data from PC to DFU device Download [=========================] 100% 536870912 bytes Download done. DFU state(7) = dfuMANIFEST, status(0) = No error condition is present DFU state(2) = dfuIDLE, status(0) = No error condition is present Done!
The u-boot log of the board is shown ' download ok' and we set mmc settings of partconf and boot bus width as following shown.
##DOWNLOAD ... OK Ctrl+C to exit ... #####DOWNLOAD ... OK | Ctrl+C to exit ... ####DOWNLOAD ... OK Ctrl+C to exit ... #######################################################################################################K Ctrl+C to exit ... => mmc partconf 0 1 1 1 => mmc partconf 0 1 7 1 => mmc bootbus 0 2 0 0 Set to BOOT_BUS_WIDTH = 0x2, RESET = 0x0, BOOT_MODE = 0x0
4. Then we reset the boot mode switch of B15 ~ B0 to MMCSD primary mode, "0000 0000 1100 0010" or another try "0000 0000 1100 0011". The borad startup without any log outputing.
We are in a hurry about this project, please reply as soon as possible.
Hi Expert,
Simply speaking , the question is how to make MMC card boot with UDA FS mode using USB DFU?
We studied many FAQs/e2e, but these FAQs are not suitable for this case:
1) Below two FAQs are for UDA FS mode with SD card. As customer's board doesn't include SD card, so have to use DFU method
2) This FAQ is for DFU + eMMC bootmode (alternate) as described in TRM, not for UDA in filesystem mode, so it is also not applicable for this case.
The test steps are listed above, Do you have any suggestion?
Best regards
Thomas