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.

TMDS64EVM: DFU program process fail:dfu-util: can't detach Resetting USB to switch back to runtime mode

Part Number: TMDS64EVM

Tool/software:

Hello TI,

We are using TMDS64GP EVM (AM64x) and trying to flash board using DFU programing procedure, but it is failing with the error "dfu-util: can't detach Resetting USB to switch back to runtime mode", logs as shown below,

We are using DFU version "dfu-util-0.11", and prebuilt binaries from sdk "ti-processor-sdk-linux-am64xx-evm-10.00.07.04".

1. We also tried building the binaries manually, but same issue is noticed.

2. We also tried this DFU programing process on both windows and Linux machines, but the same issue is noticed

Logs:

-----------------------------------------------------

D:\Projects\dfu-util-0.11-binaries\win64>dfu-util.exe -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 sourceforge.net/.../

Found DFU: [0451:6165] ver=0200, devnum=40, cfg=1, intf=0, path="1-5", alt=1, name="SocId", serial="01.00.00.00"
Found DFU: [0451:6165] ver=0200, devnum=40, cfg=1, intf=0, path="1-5", alt=0, name="bootloader", serial="01.00.00.00"
Found Runtime: [30c9:003a] ver=0006, devnum=3, cfg=1, intf=2, path="1-8", alt=0, name="Camera DFU Device", serial="0001"

D:\Projects\dfu-util-0.11-binaries\win64>
D:\Projects\dfu-util-0.11-binaries\win64>
D:\Projects\dfu-util-0.11-binaries\win64>dfu-util.exe -S 01.00.00.00 -R -a 0 -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 sourceforge.net/.../

Warning: Invalid DFU suffix signature
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% 620662 bytes
Download done.
DFU state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present
DFU state(2) = dfuIDLE, status(0) = No error condition is present
Done!
can't detach
Resetting USB to switch back to Run-Time mode

D:\Projects\dfu-util-0.11-binaries\win64>

Please let us know what the issue can be, are we missing anything here. and how to fix this issue

Thank you,

Prathibha

  • Hi,

    Found Runtime: [30c9:003a] ver=0006, devnum=3, cfg=1, intf=2, path="1-8", alt=0, name="Camera DFU Device", serial="0001"

    Can you disconnect this and retry? I am assuming this is not required?

    Regards,

    Vaibhav

  • Hello,

    I understand this "Found Runtime: [30c9:003a] ver=0006, devnum=3, cfg=1, intf=2, path="1-8", alt=0, name="Camera DFU Device", serial="0001"" is not required 

    but in my windows, this is there by default. while sharing the logs i just captured what i got from windows machine, please check the result in linux host machine as below,

    Please Note:

    The linux host machine where i am trying DFU programing process, there i will get only 

    Found DFU: [0451:6165] ver=0200, devnum=21, cfg=1, intf=0, path="1-5", alt=1, name="SocId", serial="01.00.00.00"
    Found DFU: [0451:6165] ver=0200, devnum=21, cfg=1, intf=0, path="1-5", alt=0, name="bootloader", serial="01.00.00.00"

    Still DFU programing fails with the same error "can't detach Resetting USB to switch back to Run-Time mode".

    Note: We do have some AM62x based custom boards which is working fine with DFU programing process with the same host machines. problem we are seeing only with AM64x EVM board,

    We are using prebuilt binaries from sdk "ti-processor-sdk-linux-am64xx-evm-10.00.07.04". Can you please help us to find out what is the issue here and how to fix it.

    Thank you,

    Prathibha

  • Hi,

    We are using prebuilt binaries from sdk "ti-processor-sdk-linux-am64xx-evm-10.00.07.04". Can you please help us to find out what is the issue here and how to fix it.

    I will let another expert comment on this.

    Regards,

    Vaibhav

  • Hello,

    D:\Projects\dfu-util-0.11-binaries\win64>dfu-util.exe -S 01.00.00.00 -R -a 0 -D tiboot3.bin

    If you are using the GP EVM then you would need to use the `tiboot3-am64x-gp-evm.bin` binary.

    In case of failure, please share the boot logs captured from the UART console.

    BR, Prashant

  • Hello,

    Thanks for the update,

    We tried using "tiboot3-am64x-gp-evm.bin", but still seeing the same error, also if we check for dfu-util --list, it will again show bootloader. Logs are captured and given below,

    Also, even if we try n number of times, it is the same observation.

    Logs,

    D:\Projects\OSM\Tools\dfu-util-0.11-binaries\dfu-util-0.11-binaries\win64>dfu-util.exe -S 01.00.00.00 -R -a bootloader -D tiboot3-am64x-gp-evm.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 sourceforge.net/.../

    Warning: Invalid DFU suffix signature
    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% 618073 bytes
    Download done.
    DFU state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present
    DFU state(2) = dfuIDLE, status(0) = No error condition is present
    Done!
    can't detach
    Resetting USB to switch back to Run-Time mode

    D:\Projects\OSM\Tools\dfu-util-0.11-binaries\dfu-util-0.11-binaries\win64>
    D:\Projects\OSM\Tools\dfu-util-0.11-binaries\dfu-util-0.11-binaries\win64>dfu-util.exe --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 sourceforge.net/.../

    Found DFU: [0451:6165] ver=0200, devnum=44, cfg=1, intf=0, path="1-5", alt=1, name="SocId", serial="01.00.00.00"
    Found DFU: [0451:6165] ver=0200, devnum=44, cfg=1, intf=0, path="1-5", alt=0, name="bootloader", serial="01.00.00.00"

    Thank you,

    Prathibha

  • also if we check for dfu-util --list, it will again show bootloader.

    That is expected. The R5 SPL warm resets the SoC for a CPSW Errata workaround.

    If you are using UART or DFU bootmode, you are expected to resend the tiboot3 binary again.

  • Hello,

    We are identifying 2 issues here,

    1. We flashed "tiboot3-am64x-gp-evm.bin" from prebuilt binaries (initially it took 2 times to load), and then flashed other images as well to eMMC,

    with this process device is not even booting, not even a single log is coming on UART serial port

    Please let us know what can be the issue.

    2. If we compile uboot from SDK code and try to flash by doing dfu programing process, we are getting error as in my previous comment. even if we try n number of time, "tiboot3-am64x-gp-evm.bin" will not be loaded.

    Is there anything I need to take care of in building Uboot for supporting DFU programing?

    Thank you,

    Prathibha

  • Hello,

    1. Please see the following instructions:

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/10_00_07_04/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html#:~:text=To%20give%20the%20ROM%20access%20to%20the%20boot%20partition

    2. Please share the command you are using for building U-Boot & the logs from the UART console.

    Regards,

    Prashant