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.

J721EXSOMXEVM: DFU update failed with SDK 7.1

Part Number: J721EXSOMXEVM

Hello,

I recently compiled SDK 7.1 but I can't flash bootloaders into my custom board. It allowed me to flash "tiboot3.bin" but sysfw.itb update failed. Here is the log - 

slaldas@daimler:~$ sudo dfu-util -R -a bootloader -D /home/slaldas/nova_slot5/build/arago-tmp-external-arm-glibc/deploy/images/nova-slot5/tiboot3.bin
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../

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:6163
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%       248587 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
slaldas@daimler:~$ 
slaldas@daimler:~$ 
slaldas@daimler:~$ 
slaldas@daimler:~$ sudo dfu-util -R -a sysfw.itb -D /home/slaldas/nova_slot5/build/arago-tmp-external-arm-glibc/deploy/images/nova-slot5/sysfw.itb 
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../

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:6163
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 4096
Copying data from PC to DFU device
Download	[                         ]   0%            0 bytes failed!
state(10) = dfuERROR, status(14) = Something went wrong, but the device does not know what it was
dfu-util: can't detach
Resetting USB to switch back to runtime mode

After following this link: https://e2e.ti.com/support/processors/f/791/p/964377/3567289?tisearch=e2e-quicksearch&keymatch=SD%207.1%20dfu#3567289 

I changed dfu_bufsiz  in j721e_evm.h to 0x20000, which let me flash sysfw.itb but after that I don't see any output of "sudo dfu-util -l" . Means I can't flash "tispl.bin & u-boot.img" 

slaldas@daimler:~$ sudo dfu-util -R -a bootloader -D /home/slaldas/nova_slot5/build/arago-tmp-external-arm-glibc/deploy/images/nova-slot5/tiboot3.bin
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../

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:6163
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%       248587 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
slaldas@daimler:~$ 
slaldas@daimler:~$ 
slaldas@daimler:~$ sudo dfu-util -l
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../

Found DFU: [0451:6163] ver=0224, devnum=10, cfg=1, intf=0, path="1-3.1", alt=0, name="sysfw.itb", serial="UNKNOWN"
slaldas@daimler:~$ 
slaldas@daimler:~$ 
slaldas@daimler:~$ sudo dfu-util -R -a sysfw.itb -D /home/slaldas/nova_slot5/build/arago-tmp-external-arm-glibc/deploy/images/nova-slot5/sysfw.itb 
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../

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:6163
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 4096
Copying data from PC to DFU device
Download	[=========================] 100%       269278 bytes
Download done.
state(7) = dfuMANIFEST, status(0) = No error condition is present
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode
slaldas@daimler:~$ 
slaldas@daimler:~$ 
slaldas@daimler:~$ sudo dfu-util -l
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to sourceforge.net/.../

slaldas@daimler:~$ 

Since SDK 7.0 is already working on board I tried to load bootloaders from SDK 7.0 to RAM and then explicitly flashed the bootloader from SDK 7.1 in eMMC boot partition, but board doesn't boot.

Could you please let me know how to fix this?

Thanks,

Satish

  • Hi Satish,

    I believe you are doing a dfu-boot and then trying to flash the binaries.

    I checked with the linux team and DFU boot is unsupported in 7.1 (post HSM Re-arch). So you can not boot from dfu boot mode, but you can still flash using dfu.

    So essentially you can boot to u-boot from any media and then set the dfu_alt_info and then flash to eMMC.

    1. Boot to u-boot from any media.

    2. Run below on Target:

    => env default -f -a
    ## Resetting to default environment
    => setenv mmcdev 0
    => setenv bootpart 0
    => saveenv
    Saving Environment to MMC... Writing to MMC(0)... OK
    => setenv dfu_alt_info ${dfu_alt_info_emmc}
    => dfu 0 mmc 0

    3. From Host machine run the below:

    HOST $ sudo dfu-util -l
    HOST $ sudo dfu-util -a tiboot3.bin.raw -D <PATH_TO_BIN>/tiboot3.bin
    HOST $ sudo dfu-util -a tispl.bin.raw -D <PATH_TO_BIN>/tispl.bin
    HOST $ sudo dfu-util -a u-boot.img.raw -D <PATH_TO_BIN>/u-boot.img
    HOST $ sudo dfu-util -a sysfw.itb.raw -D <PATH_TO_BIN>/sysfw.itb

    I have validated the above on the EVM, can you try this and provide your feedback?

    Regards,

    Karan

  • Hi Karan,

    Thank you for these instructions.

    On our board, we have two boot media working i.e. OSPI & eMMC. I flashed the bootloaders from SDK 7.0 on OSPI , changed boot switch to OSPI, powered the board, and stopped at u-boot prompt.

    then I followed your command to flash all four bootloaders in eMMC boot partition. The flashing went fine. 

    After flashing is completed I changed my boot switch to eMMC and I don't see any boot logs. I don't think the board is booting at all.

    Thanks,

    Satish

  • Hi Satish,

    Have you booted from eMMC before this or is this the first time you are trying on the custom HW? I want to make sure that the bootmode you are using is correct.

    Regards,

    Karan

  • Hi Karan,

    eMMC boot is working fine with SDK 7.0 bootloaders.

    It's just when I flash bootloaders from SDK 7.1 or 7.2 I don't see any logs. one thing I noticed that HW is drawing some more current when I power up the board with SDK 7.1 bootloader.

    What I mean is that

    Board from the factory (blank board) draws  - 400 mA.

    With SDK 7.0 bootloader + SDK 7.0 Linux kernel, HW is drawing - 800mA

    With SDK 7.1 bootloader + SDK 7.1 Linux kernel HW is drawing -600 mA. - (This is not working I just flashed all 4 boot loaders and rootfs)

    Since it is drawing 200 mA additional current it makes me think that the board is doing some additional processing but I am not really sure where.

    Thanks,

    Satish

  • Hi Satish,

    We had made some changes wrt the UART for your custom HW. Are those done here?

    With the latest images flashed to eMMC boot0 and with eMMC boot mode (the case when you don't see any prints) - can you connect the debugger to see if MCU R5 and A72 are up?

    Regards,

    Karan

  • Hi Karan,

    Yes I added all the UART changes in bootloader and Linux kernel before building the code.

    I will try to connect JTAG to and let you know.

    Thanks,

    Satish

  • Hi Karan,

    I have tried connecting JTAG with SDK 7.1 bootloaders & rootfs. I can connect to DMSC & MCU1_0(MCU_Cortex_R5_0) core. It didn't allow me to connect A72 or any other R5 CPU core.

    Thanks,

    Satish

  • Hi Satish,

    So in summary 7.0 binaries with the same flashing procedure to eMMC work fine and not 7.1/7.2.
    I tried the flashing to eMMC from SD-MMC and booted the binaries from eMMC and it boots perfectly fine.

    I believe your board does not have provision for SD-MMC. Can you share the diff that you have on 7.1?
    On 7.1 we have boot flow changes.

    Please ensure that all 4 images correspond to 7.1. tiboot3.bin, sysfw.itb, tispl.bin, u-boot.img.

    Also OSPI Boot is broken on 7.1 SDK:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/07_01_00_10/exports/docs/devices/J7/linux/Release_Specific_Release_Notes.html#known-issues-limitations

    I believe you have not tried that?


    Best Regards,
    Keerthy

  • Hi Keerthy,

    we returned to SDK 7.0. At some point, we would like to debug and get a newer SDK working on our board but for now, we made a decision to stay with SDK 7.0 and I am fine closing this issue.

    Thank you for helping me here,

    Satish