Tool/software:
Hello,
We have a custom board using an AM68A. I am in the middle of evaluating USB Boot mode and I'm running into some issues. I can properly set the device to usb boot mode and my computer enumerates the device as a dfu usb device. I can see the dfu device using dfu-util:
C:\>dfu-util.exe -l dfu-util 0.11-dev 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:6168] ver=0200, devnum=33, cfg=1, intf=0, path="2-1", alt=0, name="bootloader", serial="01.00.00.00" Found DFU: [0451:6168] ver=0200, devnum=33, cfg=1, intf=0, path="2-1", alt=1, name="SocId", serial="01.00.00.00"
I can load tiboot3.bin just fine and I see appropriate output on the serial console. The issue is when I send tispl.bin. The file is sent to the device without issue and according to the console output, the device is attempting to boot. But there are errors about being unable to find the USB phy which lead to other errors of being unable to boot. Here is the serial console log below:
U-Boot SPL 2024.04-g55ecc5b0-dirty (May 15 2025 - 14:27:12 -0400) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 13456 bytes Trying to boot from DFU #####DOWNLOAD ... OK Ctrl+C to exit ... alloc space exhausted Could not get FIT buffer of 1158608 bytes check CONFIG_SPL_SYS_MALLOC_SIZE Authentication passed Authentication passed Authentication passed Loading Environment from nowhere... OK init_env from device 18 not supported! Authentication passed Authentication passed Starting ATF on ARM64 core... NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b8 NOTICE: BL31: Built : 10:02:54, Oct 10 2024 I/TC: I/TC: OP-TEE version: 4.2.0-dev (gcc version 13.3.1 20240614 (Arm GNU Toolchain 13.3.Rel1 (Build arm-13.24))) #1 Thu Oct 10 14:04:09 UTC 2024 aarch64 I/TC: WARNING: This OP-TEE configuration might be insecure! I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html I/TC: Primary CPU initializing I/TC: GIC redistributor base address not provided I/TC: Assuming default GIC group status and modifier I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') I/TC: HUK Initialized I/TC: Activated SA2UL device I/TC: Enabled firewalls for SA2UL TRNG device I/TC: SA2UL TRNG initialized I/TC: SA2UL Drivers initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2024.04-g55ecc5b0-dirty (May 15 2025 - 14:45:03 -0400) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') Trying to boot from DFU cdns-usb3-peripheral usb@6000000: Couldn't get USB3 PHY: -22 cdns-usb3-peripheral usb@6000000: Couldn't get USB3 PHY: -22 No USB device found udc_device_get_by_index failed SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ###
I tried USB boot mode with a J721S2XSOMG01EVM SOM on a J721EXCP01EVM common processor board with prebuilt binaries and that worked fine. I was able to boot all the way to u-boot. Here is that serial log for reference:
U-Boot SPL 2024.04-ti-g818c76aed67f (Aug 01 2024 - 19:19:47 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 13456 bytes Trying to boot from DFU #####DOWNLOAD ... OK Ctrl+C to exit ... alloc space exhausted Could not get FIT buffer of 1083896 bytes check CONFIG_SPL_SYS_MALLOC_SIZE Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Loading Environment from nowhere... OK init_env from device 18 not supported! 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 I/TC: I/TC: OP-TEE version: 4.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 aarch64 I/TC: WARNING: This OP-TEE configuration might be insecure! I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html I/TC: Primary CPU initializing I/TC: GIC redistributor base address not provided I/TC: Assuming default GIC group status and modifier I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') I/TC: HUK Initialized I/TC: Activated SA2UL device I/TC: Fixing SA2UL firewall owner for GP device I/TC: Enabled firewalls for SA2UL TRNG device I/TC: SA2UL TRNG initialized I/TC: SA2UL Drivers initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2024.04-ti-g818c76aed67f (Aug 01 2024 - 19:19:47 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') Trying to boot from DFU cdns-usb3-peripheral usb@6000000: DRD version v1 (ID: 0004024e, rev: 00000200) cdns-usb3-peripheral usb@6000000: Initialized ep0 support: cdns-usb3-peripheral usb@6000000: Initialized ep1out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep2out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep3out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep4out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep5out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep6out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep7out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep8out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep9out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep10out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep11out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep12out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep13out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep14out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep15out support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep1in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep2in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep3in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep4in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep5in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep6in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep7in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep8in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep9in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep10in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep11in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep12in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep13in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep14in support: BULK, INT ISO cdns-usb3-peripheral usb@6000000: Initialized ep15in support: BULK, INT ISO ######DOWNLOAD ... OK Ctrl+C to exit ... Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted U-Boot 2024.04-ti-g818c76aed67f (Aug 01 2024 - 19:19:47 +0000) SoC: J721S2 SR1.0 GP Model: Texas Instruments J721S2 EVM Board: J721S2X-PM1-SOM rev E4 DRAM: 2 GiB (effective 16 GiB) Core: 117 devices, 32 uclasses, devicetree: separate Flash: 0 Bytes MMC: mmc@4f80000: 0, mmc@4fb0000: 1 Loading Environment from nowhere... OK In: serial@2880000 Out: serial@2880000 Err: serial@2880000 am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 0x6BA82102 ale_ver: 0x00293904 Ports:1 Net: eth0: ethernet@46000000port@1 Hit any key to stop autoboot: 0 MMC: no card present mmc_init: -123, time 2002 MMC: no card present mmc_init: -123, time 2002 ** Bad device specification mmc 1 ** MMC: no card present mmc_init: -123, time 2002 ** Bad device specification mmc 1 ** Couldn't find partition mmc 1:2 Can't set block device MMC: no card present mmc_init: -123, time 2002 ** Bad device specification mmc 1 ** Couldn't find partition mmc 1:2 Can't set block device libfdt fdt_check_header(): FDT_ERR_BADMAGIC No FDT memory address configured. Please configure the FDT address via "fdt addr <address>" command. Aborting! Bad Linux ARM64 Image magic! Scanning for bootflows in all bootdevs Seq Method State Uclass Part Name Filename --- ----------- ------ -------- ---- ------------------------ ---------------- Scanning global bootmeth 'efi_mgr': MMC: no card present mmc_init: -123, time 2002 No EFI system partition No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables 0 efi_mgr ready (none) 0 <NULL> ** Booting bootflow '<NULL>' with efi_mgr Loading Boot0000 'mmc 0' failed EFI boot manager: Cannot load any image Boot failed (err=-14) Scanning bootdev 'mmc@4fb0000.bootdev': MMC: no card present mmc_init: -123, time 2002
The boot failures at the end is expected. That is just due to not having the sdcard in place as I wanted to make sure it was booting of off usb.
What's weird is that if our custom board boots normally off of the sdcard into u-boot proper, I can use the dfu functionality there just fine. It seems to be an issue with the usb in the A72 SPL but I'm not quite sure how to track it down.
Would someone be able to point me in a direction to better troubleshoot this?
Thanks!