AM62A7: U-Boot fails to load into RAM via DFU on custom AM62A7 board

Part Number: AM62A7
Other Parts Discussed in Thread: AM625, SK-AM62-LP

Tool/software:

I'm testing U-Boot DFU flashing on a custom AM62A7 board using prebuilt binaries for the AM62Ax EVM.

Our board is based on the EVM design but does not include the EEPROM present on the devkit. The flashing sequence is:

sudo dfu-util -R -a bootloader -d 0451:6165 -D tiboot3.bin
sudo dfu-util -R -a tispl.bin   -d 0451:6165 -D tispl.bin
sudo dfu-util -R -a u-boot.img  -d 0451:6165 -D u-boot.img   # <-- failure occurs here

UART log:

U-Boot SPL 2021.01 (Aug 08 2023 - 15:09:16 +0530)
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
am62a_init: board_init_f done
am62a_init: spl_boot_device: devstat = 0x4cb bootmedia = 0xa bootindex = 1
Trying to boot from DFU
####DOWNLOAD ... OK
Ctrl+C to exit ...
Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices
Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices


U-Boot 2021.01 (Aug 08 2023 - 15:09:16 +0530)

SoC:   AM62AX SR1.0 HS-FS
Model: Texas Instruments AM62A7 SK
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed 1
DRAM:  4 GiB
"Synchronous Abort" handler, esr 0x96000018
elr: 00000000808229e0 lr : 0000000080822f90 (reloc)
elr: 00000000fff169e0 lr : 00000000fff16f90
x0 : 00000000ffef4000 x1 : 0000000000000008
x2 : 00000000fffc9180 x3 : 00000000fffc9170
x4 : 00000000fded6020 x5 : 0000000000000015
x6 : 0000000000000000 x7 : 00000000fdec9f58
x8 : 0000000000000002 x9 : 0000000000000008
x10: 0000000000000294 x11: 00000000fdec9c0c
x12: 000000000000024c x13: 00000000fdec9ccc
x14: 00000000fdeca2b0 x15: 00000000fdeca2b0
x16: 00000000fff4641c x17: 0000000000000000
x18: 00000000fded3df0 x19: 0000000000000040
x20: 00000000fffc90f0 x21: 0000000000000001
x22: 00000000fffcfaf0 x23: 00000000fdec9ea8
x24: 00000000fdec9f58 x25: 0000000000000000
x26: 00000000fded6040 x27: 00000000fffb30d6
x28: 00000000fded6330 x29: 00000000fdec9d60

Code: 11000422 531f7842 8b22ce82 d1004043 (f9400440)
Resetting CPU ...


Regards,

Fa

  • Hi,

    Could you attach your DDR configurations here? I suspect this could be due to wrong DDR configurations,  Could you confirm if you used the DDR Config tool to generate DDR config for your custom board and integrated it to the U-Boot?

    Best Regards,

    Meet.

  • Hi Meet,

    I’m currently using the prebuilt k3-am62a-ddr-1866mhz-32bit.dtsi from the AM62Ax EVM and haven’t generated a custom DDR configuration yet. I couldn’t attach the file with its original extension, so I renamed it to .txt.

    Best regards,

    Fa

    k3-am62a-ddr-1866mhz-32bit.txt

  • Hi Fa,

    You can use DDR configuration tool to generate DDR configurations according to your custom requirement: https://dev.ti.com/sysconfig/#/config/?args=--product%20%2Fmnt%2Ftirex-content%2FProcessor_DDR_Config_0.10.32.0000%2F.metadata%2Fproduct.json%20--device%20AM62Ax

    Best regards,

    Meet.

  • Hi Meet,

    Let me try to explain the issue in a bit more detail below.

    I’m preparing to boot from RAM via DFU.

    The log I posted earlier was taken with the original prebuilt EVM binaries. When I instead try to use a first DFU (RAM) set that I built following SPRADD1A – AUGUST 2023 – REVISED SEPTEMBER 2024 (with adjustments for AM62A7), I can’t even transfer the first image (tiboot3.bin) — see logs below.

    I also tried using the DDR Configuration Tool (from your link) to generate a custom .dtsi (k3-am62a-ddr-1866mhz-32bit.dtsi); I get the same result as in the log below. On our custom HW we use exactly the same RAM as on the EVM (MT53E1G32D2FW-046 AUT:B).

    Questions:

    Is there an AM62A7-specific document equivalent to SPRADD1A, or should we follow SPRADD1A for AM62Ax (which includes an AM625 example)?

    In the sources (SDK Linux 10.01), where is it selected whether we build the DFU-to-RAM “first set” of binaries vs. the “second set” intended for flashing (e.g., to eMMC)? Is there documentation that explains the difference and the correct configurations for each?

    Logs:

    Log 1 — Host command used to push bootloader binaries via DFU to RAM:

    $ dfu-util --list

    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=78, cfg=1, intf=0, path="1-9.1.3.3", alt=1, name="SocId", serial="01.00.00.00"
    Found DFU: [0451:6165] ver=0200, devnum=78, cfg=1, intf=0, path="1-9.1.3.3", alt=0, name="bootloader", serial="01.00.00.00"


    $ sudo dfu-util -R -a bootloader -d 0451:6165 -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%       330097 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_TIMEOUT)


    Log 2 — UART error from the custom HW:
    U-Boot SPL 2024.04 (Aug 14 2025 - 13:21:19 +0200)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    SPL initial stack usage: 13568 bytes
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###


    Best regards,

    Fa

  • Hi Fa,

    We do have this FAQ which explains the process to flash the eMMC using DFU:  [FAQ] SK-AM62: How to flash eMMC using USB DFU on AM62x-SK E2 

    This is for AM62x, but is also applicable to AM62A.

    Let me know if the steps described here works for you.

    Best Regards,

    Meet.

  • Hi Meet,

    Thanks to your guidance, we were able to get into U-Boot via DFU. However, it unfortunately crashes after a few seconds and becomes unresponsive.

    We’re working on a minimal DTS for the AM62A7, but even that fails to load. The DFU upload drops as soon as tiboot3.bin is flashed.

    Do you know if there is an official minimal DTS example for AM62A7? The only ones I found in the examples seem to be for AM625.

    Best regards,
    Fa

  • Hi Fa,

    However, it unfortunately crashes after a few seconds and becomes unresponsive.

    Please share the flashing logs from the UART port for this.

    Do you know if there is an official minimal DTS example for AM62A7? The only ones I found in the examples seem to be for AM625.

    I will check this with our u-boot expert and let you know.

    Best Regards,

    Meet.

  • Hi Meet,

    here is the complete U-Boot log we get on our custom AM62A7 hardware when flashing via DFU:

    U-Boot SPL 2024.04-g27c6704a-dirty (Sep 09 2025 - 10:15:32 +0200)
    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 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.11.0(release):v2.11.0-906-g58b25570c9-dirty
    NOTICE:  BL31: Built : 04:20:32, Nov  1 2024
    
    U-Boot SPL 2024.04-g27c6704a-dirty (Sep 09 2025 - 10:16:28 +0200)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    Trying to boot from DFU
    #####DOWNLOAD ... OK
    Ctrl+C to exit ...
    Authentication passed
    Authentication passed
    
    
    U-Boot 2024.04-g27c6704a-dirty (Sep 09 2025 - 10:16:28 +0200)
    
    SoC:   AM62AX SR1.0 HS-FS
    Model: AM62A7 MIN (UART+DFU+SD)
    DRAM:  2 GiB
    Core:  51 devices, 26 uclasses, devicetree: separate
    MMC:   mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   No ethernet found.
    Hit any key to stop autoboot:  0 
    =>


    We are currently investigating if the intermittent freezing we observe could be related to the PMIC configuration or its initialization. For reference, I am also attaching the I²C dump of our custom board PMIC at address 0x48 compared with the SK-AM62-LP devkit.

    - custom HW PMIC i2c dump:

    => i2c dev 0
    Setting bus to 0
    => i2c md 0x48 0x00 0x100
    0000: 00 9a 11 05 33 2b 22 2b 32 28 31 2b 31 1b 41 2d    ....3+"+2(1+1.A-
    0010: 2d 2d fd fd 73 73 b2 b2 1b 1b 1b 24 24 22 02 33    --..ss.....$$".3
    0020: 33 00 00 f4 38 12 38 24 24 24 24 20 7f 00 00 00    3...8.8$$$$ ....
    0030: 00 20 40 ba 01 1a 18 2a 6a 1a 1a 1a 19 08 00 fc    . @....*j.......
    0040: 0d 55 75 01 2d 01 55 50 00 00 00 00 00 00 00 ff    .Uu.-.UP........
    0050: ff 3f 11 02 30 00 00 01 08 07 10 00 00 00 00 00    .?..0...........
    0060: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00    ................
    0070: 00 00 00 02 00 00 00 00 55 01 55 99 00 43 00 00    ........U.U..C..
    0080: 00 09 02 00 0f 00 00 00 00 00 00 0b ff ff 00 00    ................
    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00a0: 00 00 00 80 00 00 08 00 00 00 00 00 00 00 00 00    ................
    00b0: 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00    ................
    00c0: 00 00 00 e0 80 00 00 00 00 00 00 00 00 00 00 00    ................
    00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00f0: 69 1d c2 eb 44 24 5e 71 bc 87 17 7c 00 00 f0 c2    i...D$^q...|....



    - devkit sk-am62-lp i2c dump:

    => i2c dev 0
    Setting bus to 0
    => i2c md 0x48 0x00 0x100
    0000: 00 9a 11 04 33 2b 22 2b 32 28 31 2b 31 1b 41 2d    ....3+"+2(1+1.A-
    0010: 2d 2d fd fd 73 73 b2 b2 1b 1b 1b 24 24 33 02 33    --..ss.....$$3.3
    0020: 33 00 00 f4 38 12 38 24 24 24 24 20 3f 00 00 00    3...8.8$$$$ ?...
    0030: 00 20 40 ba 01 1a 18 2a 6a 1a 1a 1a 19 08 00 fc    . @....*j.......
    0040: 0c 55 75 01 2d 01 55 50 00 00 00 00 00 00 00 ff    .Uu.-.UP........
    0050: ff 3f 11 02 30 00 00 01 08 07 10 00 00 00 00 00    .?..0...........
    0060: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00    ................
    0070: 00 00 00 02 00 00 00 00 55 01 55 99 00 43 00 00    ........U.U..C..
    0080: 00 09 02 00 0f 00 00 00 00 00 00 0b ff ff 00 00    ................
    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00a0: 00 00 00 80 00 00 08 00 00 00 00 00 00 00 00 00    ................
    00b0: 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00    ................
    00c0: 00 00 00 e0 80 00 00 00 00 00 00 00 00 00 00 00    ................
    00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00f0: ff bf 54 49 bb ba 5e 71 bc 87 17 7c 00 00 da b5    ..TI..^q...|....


    At first glance there are some differences in the register values between our custom board and the devkit. Could these differences in PMIC setup or configuration potentially explain the freezes we are seeing after DFU boot?

    Best regards,
    Fa