AM6422: fail to download tispl.bin by DFU

Part Number: AM6422
Other Parts Discussed in Thread: TMDS64EVM, AM6442,

Tool/software:

After tiboot3.bin is downloaded, tispl.bin can not download, and the uart0 prints uncorrect message. 

The detail message is below:

am64x/bootloaders-latest#
am64x/bootloaders-latest# sudo dfu-util -l
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Found DFU: [0451:6165] ver=0200, devnum=83, cfg=1, intf=0, alt=1, name="SocId", serial="01.00.00.00"
Found DFU: [0451:6165] ver=0200, devnum=83, cfg=1, intf=0, alt=0, name="bootloader", serial="01.00.00.00"
am64x/bootloaders-latest#
am64x/bootloaders-latest# sudo dfu-util -R -a bootloader -D tiboot3.bin
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0451:6165
Run-time device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 512
Copying data from PC to DFU device
Download [=========================] 100% 618359 bytes
Download done.
state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
dfu-util: can't detach
Resetting USB to switch back to runtime mode
am64x/bootloaders-latest#
am64x/bootloaders-latest#
am64x/bootloaders-latest# sudo dfu-util -R -a bootloader -D tiboot3.bin
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0451:6165
Run-time device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 512
Copying data from PC to DFU device
Download [=========================] 100% 618359 bytes
Download done.
state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
dfu-util: can't detach
Resetting USB to switch back to runtime mode
am64x/bootloaders-latest#
am64x/bootloaders-latest#
am64x/bootloaders-latest# sudo dfu-util -l
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

am64x/bootloaders-latest#

===============================================================

/root# jat -l /dev/ttyUSB2 -s 115200
Connected.

U-Boot SPL 2024.04 (Feb 18 2025 - 05:59:57 +0000)
Resetting on cold boot to workaround ErrataID:i2331
Please resend tiboot3.bin in case of UART/DFU boot
resetting ...

U-Boot SPL 2024.04 (Feb 18 2025 - 05:59:57 +0000)
SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
SPL initial stack usage: 13392 bytes

  • Hi,

    Is this on AM64x EVM or your custom board?

    If EVM, is it on the GPEVM (green PCB) or SK EVM (red PCB)?

    If your custom board, does your board have EEPROM for the board ID that similar to the EVM?

  • Hi, Bin


    This is our custom board. Our board has no EEPROM.

  • Hi,

    Please use the following U-Boot patch instead. You need to use 'evm' devicetree instead of 'sk' devicetree. The 'evm' devicetree configures the USB port in device mode which is used by DFU, while the 'sk' devicetree configures the USB port in host mode with which DFU won't work.

    diff --git a/configs/am64x_evm_a53_defconfig b/configs/am64x_evm_a53_defconfig
    index fd3146962062..06e16a282877 100644
    --- a/configs/am64x_evm_a53_defconfig
    +++ b/configs/am64x_evm_a53_defconfig
    @@ -77,7 +77,7 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fc40000.spi.0:1m(ospi.tiboot3),2m(ospi.tispl),
     CONFIG_CMD_UBI=y
     CONFIG_OF_CONTROL=y
     CONFIG_SPL_OF_CONTROL=y
    -CONFIG_OF_LIST="k3-am642-evm k3-am642-sk"
    +CONFIG_OF_LIST="k3-am642-evm"
     CONFIG_MULTI_DTB_FIT=y
     CONFIG_SPL_MULTI_DTB_FIT=y
     CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
    diff --git a/configs/am64x_evm_r5_defconfig b/configs/am64x_evm_r5_defconfig
    index c500945a8d70..369802a08dd3 100644
    --- a/configs/am64x_evm_r5_defconfig
    +++ b/configs/am64x_evm_r5_defconfig
    @@ -81,7 +81,7 @@ CONFIG_CMD_FAT=y
     CONFIG_OF_CONTROL=y
     CONFIG_SPL_OF_CONTROL=y
     CONFIG_SPL_MULTI_DTB_FIT=y
    -CONFIG_SPL_OF_LIST="k3-am642-r5-evm k3-am642-r5-sk"
    +CONFIG_SPL_OF_LIST="k3-am642-r5-evm"
     CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
     CONFIG_SYS_RELOC_GD_ENV_ADDR=y
     CONFIG_DM=y

  • hi Bin, 

    I tried it with your patch, but tiboot3.bin still not work well. I add some log in u-boot, the logs is below:

    So I think the DDR is not configured correctly.

     

    Chip

    Memory type

    Uboot

    DFU boot status

    TMDS64EVM 评估版

    AM6442

    DDR4

    Uboot2024

    Success

    Our board

    AM6422

    lpDDR4

    Uboot2024

    Fail

    /root# jat -l /dev/ttyUSB2 -s 115200
    Connected.

    U-Boot SPL 2024.04 (Feb 19 2025 - 09:05:20 +0000)
    Resetting on cold boot to workaround ErrataID:i2331
    Please resend tiboot3.bin in case of UART/DFU boot
    resetting ...

    U-Boot SPL 2024.04 (Feb 19 2025 - 09:05:20 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    SPL initial stack usage: 13392 bytes
    I am in spl_relocate_stack_gd
    I am in spl_relocate_stack_gd 1
    SPL malloc() before relocation used 0x23f8 bytes (8 KB)
    gd->start_addr_sp = 0x81ffff10
    new_gd = 0x81ffff10
    gd = 0x7011b710
    done for memcpy,ptr = 0x81ffff10
    gd->bd = 0x0
    gd->baudrate = 0x1c200
    gd->flags = 0x8100
    gd->dm_root = 0x7011b818
    new_gd->uclass_root = 0xffffffff
    new_gd->bd = 0xffffffff
    new_gd->baudrate = 0xffffffff
    new_gd->flags = 0xffffffff
    new_gd->dm_root = 0xffffffff
    I get in dm_fixup_for_gd_move
    new_gd->uclass_root = 0xffffffff

  • Hi,

    Since your board uses a different DDR (LPDDR4), did you update the DDR config in U-Boot? The EVM uses "k3-am64-evm-ddr4-1600MTs.dtsi" which is included in "k3-am642-r5-evm.dts".

  • thanks, I will try to update the DDR config.