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.

AM6252: USB Memory Boot issue

Part Number: AM6252
Other Parts Discussed in Thread: AM625

Hello,

When my customer tries to boot the device with USB memory, the boot image on Partition 1 loads successfully, and the system reaches the U-Boot stage.

However, the Rootfs image on Partition 2 fails to load because the USB storage is not recognized, resulting in a boot failure.

  • USB Disk Partition Layout
    • sda1: FAT (Boot Image)
    • sda2: ext4 (RootFS Image)

-Additional Observation

  • For the SanDisk Cruzer Blade, the device initially boots normally, but after a certain point (or a specific duration), it fails to boot.

this is the Yocto environment

LAYERSERIES_CORENAMES="scarthgap"
git describe --tags

11.01.05

Codename scarthgap/ 11.01.05 SDK

 

this is the USB DTS

What will be the problem?

If you need any other data please let me know.

Regards,

Ted

  • Hi Ted,

    Can you get the whole boot logs and the steps/changes made for building USB support images?
    Also, please share the Linux .config file.

    Regards,
    Vinu

  • USB Boot image generate process

    - create yocto(11.01) tisdk-default-image 

    - Write tisdk-default-image-xxx.wic.xz to USB using bmap tool 

    $ sudo bmaptool copy --nobmap tisdk-default-image-am62xx-evm.rootfs-20260206070046.wic.xz /dev/sdc

    Linux .config file modification

    -refer exp3_kernel.config and exp3_kernel.patchexp3_kernel.confighttps://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/exp3_5F00_kernel.patch

    -when Linux booted normally, USB Storage recognition is normal

    -Uboot booting failed USB can still recognize the Linux and no problem to liunx

    Uboot modification

    refer exp3_uboot.patchhttps://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/exp3_5F00_uboot.patch

    Regards,

    Ted

  • and here's the log

    ######################################################################

    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)

    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')

    Changed A53 CPU frequency to 1250000000Hz (T grade) in DT

    Trying to boot from USB

    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd

    Register 1000840 NbrPorts 1

    Starting the controller

    USB XHCI 1.10

    scanning bus usb@31000000 for devices... 1 USB Device(s) found

           scanning usb for storage devices... 0 Storage Device(s) found

    spl_usb_load[50] scan storage devices fail, retry

    Bus usb@31000000: probe failed, error -110

    No USB controllers found

    spl_usb_load: usb init failed: err - -2

    Trying to boot from MMC1

    Authentication passed

    Authentication passed

    Authentication passed

    Authentication passed

    Authentication passed

    Starting ATF on ARM64 core...

     

    NOTICE:  BL31: v2.13.0(release):v2.13.0-240-gd90bb650fe-dirty

    NOTICE:  BL31: Built : 21:37:18, Jun 23 2025

     

    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)

    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')

    Trying to boot from USB

    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: unable to get ti,syscon-phy-pll-refclk regmap

    probe failed, error -110

    No USB controllers found

    spl_usb_load: usb init failed: err - -2

    Trying to boot from MMC1

    Authentication passed

    Authentication passed

     

     

    U-Boot 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)

     

    SoC:   AM62X SR1.0 HS-FS

    Model: Texas Instruments AM625 SK

    DRAM:  2 GiB

    Core:  93 devices, 30 uclasses, devicetree: separate

    MMC:   mmc@fa10000: 0, mmc@fa00000: 1

    Loading Environment from nowhere... OK

    In:    serial@2800000

    Out:   serial@2800000

    Err:   serial@2800000

    Net:   eth0: ethernet@8000000port@1

    Autoboot in 2 seconds

    starting USB...

    Bus usb@31000000: generic_phy_get_bulk : no phys property

    probe failed, error -110

    No USB controllers found

    USB is stopped. Please issue 'usb start' first.

    ######################################################################

  • Hi Ted,

    This seem like an MMC1 boot after USB boot failing multiple times.

    boot image on Partition 1 loads successfully, and the system reaches the U-Boot stage.

    Does the customer have the bootloader images on MMC1 too?

    Anyway, I'll try to try it out on a fresh Yocto build and share the steps in 2 days.

    Regards,
    Vinu

  • Hi Ted,

    I was able to get the USB MSC boot working from a fresh AM62X on scarthgap/ 11.01.05 SDK.

    Following are the steps/ required changes.

    local.conf - Add the following U-boot config and fragments 

    # U-boot config and fragments for A53
    UBOOT_MACHINE:am62xx-evm = "am62x_evm_a53_defconfig"
    UBOOT_CONFIG_FRAGMENTS:am62xx-evm = "am62x_a53_usbmsc.config"
    
    # U-boot config and fragments for R5
    UBOOT_MACHINE:am62xx-evm-k3r5 = "am62x_evm_r5_defconfig"
    UBOOT_CONFIG_FRAGMENTS:am62xx-evm-k3r5 = "am62x_r5_usbmsc.config"

    U-boot

    # Fetch sources
    devtool modify u-boot-ti-staging
    
    # Clean u-boot
    bitbake mc:k3r5:u-boot-ti-staging -c cleansstate
    bitbake u-boot-ti-staging -c cleansstate

    Modify Device Tree

    U-boot DT patch

    diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
    index de79dc8bdb6..2ecdf389cf6 100644
    --- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
    +++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
    @@ -42,6 +42,6 @@
     };
     
     &usb0 {
    -       dr_mode = "peripheral";
    +       dr_mode = "host";
            bootph-all;
     };

    Build u-boot

    bitbake mc:k3r5:u-boot-ti-staging
    bitbake u-boot-ti-staging

    Linux

    devtool modify linux-ti-staging
    bitbake -c menuconfig virtual/kernel
    
    # Modify the DTS
    bitbake virtual/kernel -c devshell

    Linux DT changes

    diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    index d64a58593da9..4e38e9d0c0f0 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    @@ -584,6 +584,7 @@ &usbss1 {
     &usb0 {
            bootph-all;
            usb-role-switch;
    +       dr_mode = "host";
     
            port {
                    usb0_hs_ep: endpoint {

    Build kernel and image

    bitbake virtual/kernel -c compile
    bitbake tisdk-default-image

    Flash the bootloaders and rootfs to the USB drive.

    To boot the Linux from the USB stick, interrupt u-boot auto boot, follow the commands below.

    usb start

    load usb 0:2 ${kernel_addr_r} /boot/Image
    load usb 0:2 ${fdt_addr_r} /boot/dtb/ti/k3-am62a7-sk.dtb
    setenv bootargs "console=ttyS2,115200 root=/dev/sda2 rw rootwait"

    booti ${kernel_addr_r} - ${fdt_addr_r}


    Sharing the complete boot logs below.

    Bootlogs_e2e-1618359-AM6252-USB_Memory_Boot_issue_yoctoBuild.txt

    Regards,
    Vinu

  • Hello Vinu,

    their patch already applied your suggestion.

    they are using USB MSC BOOT by following TI guide.

    but the problem is even they use same U-BOOT code and if the use same vendor's(Sandisk) USB memory,

    some usb shows boot failure as reported.

    Here's the logs when the booting done well and not booting well.

    these 2 USBs are same model but it shows the difference.

    -normal

    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    Changed A53 CPU frequency to 1250000000Hz (T grade) in DT
    Trying to boot from USB
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices...
    usb_stor_get_info[1499] Info: SanDisk, Cruzer Blade, 1.00
    2 USB Device(s) found
           scanning usb for storage devices... 1 Storage Device(s) found
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-240-gd90bb650fe-dirty
    NOTICE:  BL31: Built : 21:37:18, Jun 23 2025
    
    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    Trying to boot from USB
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices...
    usb_stor_get_info[1499] Info: SanDisk, Cruzer Blade, 1.00
    2 USB Device(s) found
           scanning usb for storage devices... 1 Storage Device(s) found
    Authentication passed
    Authentication passed
    
    
    U-Boot 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    DRAM:  2 GiB
    Core:  93 devices, 30 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1
    Autoboot in 2 seconds
    starting USB...
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    generic_phy_get_bulk : no phys property
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices...
    usb_stor_get_info[1499] Info: SanDisk, Cruzer Blade, 1.00
    2 USB Device(s) found
           scanning usb for storage devices... 1 Storage Device(s) found
    
    Device 0: Vendor: SanDisk Rev: 1.00 Prod: Cruzer Blade
                Type: Removable Hard Disk
                Capacity: 7632.0 MB = 7.4 GB (15630336 x 512)
    ... is now current device
    USB found on device 0
    fatload - load binary file from a dos filesystem
    
    Usage:
    fatload <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
        - Load binary file 'filename' from 'dev' on 'interface'
          to address 'addr' from dos filesystem.
          'pos' gives the file position to start loading from.
          If 'pos' is omitted, 0 is used. 'pos' requires 'bytes'.
          'bytes' gives the size to load. If 'bytes' is 0 or omitted,
          the load stops on end of file.
          If either 'pos' or 'bytes' are not aligned to
          ARCH_DMA_MINALIGN then a misaligned buffer warning will
          be printed and performance will suffer for the load.
    Importing environment from usb0 ...
    ## Info: input data size = 794975 = 0xC215F
    22397440 bytes read in 603 ms (35.4 MiB/s)
    63059 bytes read in 6 ms (10 MiB/s)
    Working FDT set to 88000000
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008feed000, end 000000008fffffff ... OK
    Working FDT set to 8feed000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.12.35-ti-00915-ge3e551586dfa-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Tue Jul  1 21:17:52 UTC 2025
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: legacy bootconsole [ns16550a0] enabled
    [    0.252888] tps65219 0-0030: Failed to request IRQ 0 for tps65219_irq: -22
    [    0.260053] tps65219 0-0030: probe with driver tps65219 failed with error -22
    [    4.631813] systemd[1]: Failed to start Start psplash boot splash screen.
    [FAILED] Failed to start Start psplash boot splash screen.
    [DEPEND] Dependency failed for Start psplas…temd progress communication helper.
    [    4.872584] sysctl table check failed: ioctl/(null) procname is null
    [    4.902155] sysctl table check failed: ioctl/(null) No proc_handler
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project am62xx-evm ttyS2
    
    Arago 2025.01 am62xx-evm ttyS2
    
    am62xx-evm login:
    

    -Fails

    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    Changed A53 CPU frequency to 1250000000Hz (T grade) in DT
    Trying to boot from USB
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    spl_usb_load[50] scan storage devices fail, retry
    Bus usb@31000000: Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-240-gd90bb650fe-dirty
    NOTICE:  BL31: Built : 21:37:18, Jun 23 2025
    
    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    Trying to boot from USB
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    spl_usb_load[50] scan storage devices fail, retry
    Bus usb@31000000: Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    DRAM:  2 GiB
    Core:  93 devices, 30 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Reset Source: 0x00000000 (normal)
    Primary boot: 0x0a (usb)
    Net:   eth0: ethernet@8000000port@1
    Autoboot in 2 seconds
    starting USB...
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    generic_phy_get_bulk : no phys property
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    Bus usb@31000000: generic_phy_get_bulk : no phys property
    probe failed, error -110
    No USB controllers found
           scanning usb for storage devices... 0 Storage Device(s) found
    USB is stopped. Please issue 'usb start' first.
    switch to partitions #0, OK
    mmc0(part 0) is current device
    23597568 bytes read in 130 ms (173.1 MiB/s)
    SD/MMC found on device 0
    574 bytes read in 9 ms (61.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    23597568 bytes read in 128 ms (175.8 MiB/s)
    62832 bytes read in 5 ms (12 MiB/s)
    Working FDT set to 88000000
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008feed000, end 000000008fffffff ... OK
    Working FDT set to 8feed000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.12.35-ti-00915-ge3e551586dfa-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Tue Jul  1 21:17:52 UTC 2025
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: legacy bootconsole [ns16550a0] enabled
    [    0.261020] tps65219 0-0030: Failed to request IRQ 0 for tps65219_irq: -22
    [    0.268163] tps65219 0-0030: probe with driver tps65219 failed with error -22
    [    3.213587] sysctl table check failed: ioctl/(null) procname is null
    [    3.224998] sysctl table check failed: ioctl/(null) No proc_handler
    [FAILED] Failed to start Update Network Config with Info MAC.
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project exp3 ttyS2
    
    Arago 2025.01 exp3 ttyS2
    
    exp3 login:
    

    Regards,

    Ted

  • Hi Ted,

    Looks like the XHCI controller finished bus scanning before the second (failing) USB stick had fully completed its internal USB Mass Storage enumeration/initialization.

    I'm sharing a patch, which will introduce a delay of 5s between init and scan. 

    Can you check if this makes any difference?

    diff --git a/common/spl/spl_usb.c b/common/spl/spl_usb.c
    index 932da56ab6d..9e57f294716 100644
    --- a/common/spl/spl_usb.c
    +++ b/common/spl/spl_usb.c
    @@ -13,6 +13,7 @@
     #include <errno.h>
     #include <usb.h>
     #include <fat.h>
    +#include <linux/delay.h>
     
     static int usb_stor_curr_dev = -1; /* current device */
     
    @@ -38,6 +39,7 @@ int spl_usb_load(struct spl_image_info *spl_image,
            }
     
            /* try to recognize storage devices immediately */
    +       mdelay(5000);
            usb_stor_curr_dev = usb_stor_scan(1);
            stor_dev = blk_get_devnum_by_uclass_id(UCLASS_USB, usb_stor_curr_dev);
            if (!stor_dev)
    

    Regards,
    Vinu

  • They applied patch and it didn't work. I am attaching the patch and the log

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/1273.exp3_5F00_uboot.patch

    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    Changed A53 CPU frequency to 1250000000Hz (T grade) in DT
    Trying to boot from USB
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    spl_usb_load[52] scan storage devices fail, retry
    Bus usb@31000000: Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-240-gd90bb650fe-dirty
    NOTICE:  BL31: Built : 21:37:18, Jun 23 2025
    
    U-Boot SPL 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
    Trying to boot from USB
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    spl_usb_load[50] scan storage devices fail, retry
    Bus usb@31000000: probe failed, error -110
    No USB controllers found
    spl_usb_load: usb init failed: err - -2
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2025.01-00527-gd2a72467939e-dirty (Jul 01 2025 - 21:23:47 +0000)
    
    SoC:   AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    DRAM:  2 GiB
    Core:  93 devices, 30 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    get_exp3_model_id[255] eXP3 Board Model ID: 0x0002(5inch)
    Reset Source: 0x00000000 (normal)
    Primary boot: 0x0a (usb)
    Net:   eth0: ethernet@8000000port@1
    Autoboot in 2 seconds
    starting USB...
    Bus usb@31000000: dwc3-am62 dwc3-usb@f900000: Configured PHY: WKUP(0x43004008)=0x6, MAIN(0x104300)=0xd
    generic_phy_get_bulk : no phys property
    probe failed, error -110
    No USB controllers found
    USB is stopped. Please issue 'usb start' first.
    switch to partitions #0, OK
    mmc0(part 0) is current device
    23597568 bytes read in 130 ms (173.1 MiB/s)
    SD/MMC found on device 0
    574 bytes read in 8 ms (69.3 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    23597568 bytes read in 129 ms (174.5 MiB/s)
    62832 bytes read in 3 ms (20 MiB/s)
    Working FDT set to 88000000
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008feed000, end 000000008fffffff ... OK
    Working FDT set to 8feed000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.12.35-ti-00915-ge3e551586dfa-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Tue Jul  1 21:17:52 UTC 2025
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Texas Instruments AM625 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: legacy bootconsole [ns16550a0] enabled
    [    0.259440] tps65219 0-0030: Failed to request IRQ 0 for tps65219_irq: -22
    [    0.266610] tps65219 0-0030: probe with driver tps65219 failed with error -22
    [    3.226861] sysctl table check failed: ioctl/(null) procname is null
    [    3.240935] sysctl table check failed: ioctl/(null) No proc_handler
    [FAILED] Failed to start Update Network Config with Info MAC.
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project exp3 ttyS2
    
    Arago 2025.01 exp3 ttyS2
    
    exp3 login:
    

    Regards,

    Ted

  • Hi Ted,

    I need some clarifications.

    1. Is this being tried out on a custom board?
    2. Is the working USB stick works all the time, on multiple boards?
    3. Is the failing USB stick fails all the time?
    4. How many USB sticks/boards have been tried out yet?

    Can the outputs of the following commads be shared for the working and failing USB sticks?

    sudo fdisk -l /dev/sdX
    sudo parted /dev/sdX print
    
    # Confirm FAT32 specifically
    sudo blkid /dev/sdX1
    lsblk -f /dev/sdX


    Regards,
    Vinu

  • Hello Vinu,

    1. Is this being tried out on a custom board? -> They are using 4 different type(each 6pcs) custom boards
    2. Is the working USB stick works all the time, on multiple boards? -> always works on every boards
    3. Is the failing USB stick fails all the time? -> failing USB get success for first 3~4 times and then it always fails on every boards.
    4. How many USB sticks/boards have been tried out yet?->7 different sticks are tested. all boards are tested.

    *Command execution result -> failing USB

    $ lsblk -f /dev/sdc

    NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS

    sdc                                                                          

    ├─sdc1 vfat   FAT16 boot  B760-0349                             101.7M    20% /media/dykim/boot

    └─sdc2 ext4   1.0   root  8c4064fc-ad00-45ec-92df-735bf02cd3bd    1.8G    59% /media/dykim/root

     

    $ sudo blkid /dev/sdc1

    /dev/sdc1: SEC_TYPE="msdos" LABEL_FATBOOT="boot" LABEL="boot" UUID="B760-0349" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="076c4a2a-01"

     

    $ sudo fdisk -l /dev/sdc

    Disk /dev/sdc: 29.25 GiB, 31406948352 bytes, 61341696 sectors

    Disk model: Cruzer Blade   

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disklabel type: dos

    Disk identifier: 0x076c4a2a

     

    Device     Boot  Start      End  Sectors  Size Id Type

    /dev/sdc1  *      2048   264191   262144  128M  c W95 FAT32 (LBA)

    /dev/sdc2       264192 11459441 11195250  5.3G 83 Linux

     

    $ sudo parted /dev/sdc print

    Model: SanDisk Cruzer Blade (scsi)

    Disk /dev/sdc: 31.4GB

    Sector size (logical/physical): 512B/512B

    Partition Table: msdos

    Disk Flags:

     

    Number  Start   End     Size    Type     File system  Flags

    1      1049kB  135MB   134MB   primary  fat16        boot, lba

    2      135MB   5867MB  5732MB  primary  ext4

    *Command execution result -> Normal USB

    $ lsblk -f /dev/sdc

    NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS

    sdc                                                                          

    ├─sdc1 vfat   FAT16 boot  B760-0349                             101.7M    20% /media/dykim/boot

    └─sdc2 ext4   1.0   root  8c4064fc-ad00-45ec-92df-735bf02cd3bd    1.8G    59% /media/dykim/root

     

    $ sudo blkid /dev/sdc1

    /dev/sdc1: SEC_TYPE="msdos" LABEL_FATBOOT="boot" LABEL="boot" UUID="B760-0349" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="076c4a2a-01"

     

    $ sudo fdisk -l /dev/sdc

    Disk /dev/sdc: 7.45 GiB, 8002732032 bytes, 15630336 sectors

    Disk model: Cruzer Blade   

    Units: sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disklabel type: dos

    Disk identifier: 0x076c4a2a

     

    Device     Boot  Start      End  Sectors  Size Id Type

    /dev/sdc1  *      2048   264191   262144  128M  c W95 FAT32 (LBA)

    /dev/sdc2       264192 11459441 11195250  5.3G 83 Linux

     

    $ sudo parted /dev/sdc print

    Model: SanDisk Cruzer Blade (scsi)

    Disk /dev/sdc: 8003MB

    Sector size (logical/physical): 512B/512B

    Partition Table: msdos

    Disk Flags:

     

    Number  Start   End     Size    Type     File system  Flags

    1      1049kB  135MB   134MB   primary  fat16        boot, lba

    2      135MB   5867MB  5732MB  primary  ext4

    Regards,

    Ted

  • Hi Ted,

    • Is the failing USB stick fails all the time? -> failing USB get success for first 3~4 times and then it always fails on every boards.

    This seems like a USB drive/partition related issue than a build-setup issue.

    Can you run the following command after mounting the failing stick, after failure and share output?

    # Check for first partition on the USB stick
    sudo fsck.vfat -n /dev/sdc1

    Also, please try if running the following makes any difference for the failing sticks.

    sudo fsck.vfat -a /dev/sdc1     # Auto-fix FAT errors including dirty bit
    sudo sync

    This will clear the dirty-bit, if present. Please check if the stick is booting after running this command or not.

    Are both the sticks USB 2.0 itself?

    Also, there is an errata on USB MSC boot on AM62x.
    https://docs.ampnuts.ru/ti.com.datasheet/AM623/Errata.PDF

    which says, "Details: USB MSC Host boot may fail due to a protocol timing violation present in the ROM USB device enumeration process. USB DFU boot is unaffected.
    Workaround(s): No workaround is available. Some USB MSC devices may tolerate this protocol violation and function as expected. Due to the internal component variability of broad-market MSC devices, a list of tolerant devices cannot be provided."

    Please check i2328.

    Regards,
    Vinu

  • Hello Vinu,

    Customer changed common/usb.c 's usb_select_config. 

    and then all usbs are working well even with dirty bit.

    1. do you think this is the valid solution to this issue?

    2. if so, please apply this fix to SDK for future customers.

    Regards,

    Ted

  • Hi Ted,

    Glad to know that the issue is resolved.

    and then all usbs are working well even with dirty bit.

    Was the issue exclusive to partitions with dirty bit set? Can you please confirm?

    1. do you think this is the valid solution to this issue?

    It's similar to what I've asked to try earlier, but it might've been targeted to a wrong phase of usb initialization.

    Looks like the XHCI controller finished bus scanning before the second (failing) USB stick had fully completed its internal USB Mass Storage enumeration/initialization.

    2. if so, please apply this fix to SDK for future customers.

    This is not in the TI specific code, it's in common u-boot code. Ideally it has to be upstreamed, and u-boot has to approve this. 
    I will give this as a suggestion.

    Regards,
    Vinu