Some Colibri iMX6DL 1.1A modules can't detect USB Storage Device

We use USB thumb drives with Toradex Easy Installer to initially flash our modules. From time to time brand new modules fail to boot from USB.

Here is a diff of the outputs. Left the failing (Serial# 12897713), right the working (Serial# 12897980) module:

    Commercial temperature grade DDR3 timings, 64bit bus widt       Commercial temperature grade DDR3 timings, 64bit bus widt
Trying to boot from MMC1                                        Trying to boot from MMC1


U-Boot 2020.07-5.7.5+git.4baed786463e (Feb 08 2024 - 08:54:56 | U-Boot 2020.07-5.7.6-devel+git.4baed786463e (Jan 24 2024 - 16

CPU:   Freescale i.MX6DL rev1.4 996 MHz (running at 792 MHz)    CPU:   Freescale i.MX6DL rev1.4 996 MHz (running at 792 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 32C        | CPU:   Commercial temperature grade (0C to 95C) at 45C
Reset cause: POR                                                Reset cause: POR
DRAM:  512 MiB                                                  DRAM:  512 MiB
PMIC:  device id: 0x10, revision id: 0x21, programmed           PMIC:  device id: 0x10, revision id: 0x21, programmed
MMC:   FSL_SDHC: 1, FSL_SDHC: 0                                 MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... *** Warning - bad CRC, using    Loading Environment from MMC... *** Warning - bad CRC, using

In:    serial                                                   In:    serial
Out:   serial                                                   Out:   serial
Err:   serial                                                   Err:   serial
Model: Toradex Colibri iMX6DL 512MB V1.1A, Serial# 12897713   | Model: Toradex Colibri iMX6DL 512MB V1.1A, Serial# 12897980
Net:   eth0: ethernet@2188000                                   Net:   eth0: ethernet@2188000
Hit any key to stop autoboot:  0                                Hit any key to stop autoboot:  0
MMC: no card present                                          <
switch to partitions #0, OK                                   <
mmc0(part 0) is current device                                <
** Unrecognized filesystem type **                            <
starting USB...                                                 starting USB...
Bus usb@2184000: USB EHCI 1.00                                  Bus usb@2184000: USB EHCI 1.00
Bus usb@2184200: USB EHCI 1.00                                  Bus usb@2184200: USB EHCI 1.00
scanning bus usb@2184000 for devices... 1 USB Device(s) found   scanning bus usb@2184000 for devices... 1 USB Device(s) found
scanning bus usb@2184200 for devices... 2 USB Device(s) found   scanning bus usb@2184200 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s          scanning usb for storage devices... 1 Storage Device(s

Device 0: Vendor: General  Rev: 5.00 Prod: UDisk                Device 0: Vendor: General  Rev: 5.00 Prod: UDisk
            Type: Removable Hard Disk                                       Type: Removable Hard Disk
            Capacity: 3840.0 MB = 3.7 GB (7864320 x 512)                    Capacity: 3840.0 MB = 3.7 GB (7864320 x 512)
... is now current device                                       ... is now current device
Scanning usb 0:1...                                             Scanning usb 0:1...
BOOTP broadcast 1                                             | Found U-Boot script /boot.scr
DHCP client bound to address 172.16.6.110 (114 ms)            | 504 bytes read in 30 ms (15.6 KiB/s)
Using ethernet@2188000 device                                 | ## Executing script at 17000000
TFTP from server 192.168.10.1; our IP address is 172.16.6.110 | 30698756 bytes read in 1422 ms (20.6 MiB/s)
Filename 'boot-tezi.scr'.                                     | ## Loading kernel from FIT Image at 12200000 ...
Load address: 0x17000000                                      |    Using 'config@imx6dl-colibri-eval-v3.dtb' configuration
Loading: T  ICMP Host Redirect to 192.168.10.1 T  ICMP Host R |    Trying 'kernel@1' kernel subimage
                                                              >      Description:  Linux kernel
                                                              >      Type:         Kernel Image

For the failing module we get:

MMC: no card present

Don’t mind the different u-boot versions, the working module has already been flashed when I was testing. However, in general our thumb drives also work with the Toradex factory firmware.

See below for the complete output.

Here is the output for a working module:

    Commercial temperature grade DDR3 timings, 64bit bus width.
Trying to boot from MMC1


U-Boot 2020.07-5.7.6-devel+git.4baed786463e (Jan 24 2024 - 16:25:00 +0000)

CPU:   Freescale i.MX6DL rev1.4 996 MHz (running at 792 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 45C
Reset cause: POR
DRAM:  512 MiB
PMIC:  device id: 0x10, revision id: 0x21, programmed
MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Model: Toradex Colibri iMX6DL 512MB V1.1A, Serial# 12897980
Net:   eth0: ethernet@2188000
Hit any key to stop autoboot:  0
starting USB...
Bus usb@2184000: USB EHCI 1.00
Bus usb@2184200: USB EHCI 1.00
scanning bus usb@2184000 for devices... 1 USB Device(s) found
scanning bus usb@2184200 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Device 0: Vendor: General  Rev: 5.00 Prod: UDisk
            Type: Removable Hard Disk
            Capacity: 3840.0 MB = 3.7 GB (7864320 x 512)
... is now current device
Scanning usb 0:1...
Found U-Boot script /boot.scr
504 bytes read in 30 ms (15.6 KiB/s)
## Executing script at 17000000
30698756 bytes read in 1422 ms (20.6 MiB/s)
## Loading kernel from FIT Image at 12200000 ...
   Using 'config@imx6dl-colibri-eval-v3.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x12200108
     Data Size:    6967808 Bytes = 6.6 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x10008000
     Entry Point:  0x10008000
     Hash algo:    sha1
     Hash value:   1ca581ad83071161241f1e217907948ced6a457b
   Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 12200000 ...
   Using 'config@imx6dl-colibri-eval-v3.dtb' configuration
   Trying 'ramdisk@1' ramdisk subimage
     Description:  tezi-initramfs
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x128b074c
     Data Size:    23683072 Bytes = 22.6 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha1
     Hash value:   b9cd7fdf5d8b0ca1e9bd901663edc6cafd0a3259
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 12200000 ...
   Using 'config@imx6dl-colibri-eval-v3.dtb' configuration
   Trying 'fdt@imx6dl-colibri-eval-v3.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x128a5414
     Data Size:    45696 Bytes = 44.6 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   4fe889b9a0cd470d18fa07ab63edf7f535390cc1
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x128a5414
   Loading Kernel Image
   Loading Ramdisk to 1e96a000, end 20000000 ... OK
   Loading Device Tree to 1e95b000, end 1e96927f ... OK

Starting kernel ...

[    0.967682] rtc-ds1307 1-0068: hctosys: unable to read the hardware clock
[    0.992914] usb usb1-port1: over-current condition
Running /etc/rc.local...
TDX_VER_ID="Colibri-iMX6_ToradexEasyInstaller_2.0b7-20210415"
Starting udev
System time was Thu Jan  1 00:00:02 UTC 1970.
Setting the System Clock using the Hardware Clock as reference...
hwclock: RTC_RD_TIME: Invalid argument
System Clock set. System local time is now Thu Jan  1 00:00:02 UTC 1970.
Thu Apr 15 17:12:19 UTC 2021
Saving the System Clock time to the Hardware Clock...
Hardware Clock updated to Thu Apr 15 17:12:19 UTC 2021.
[    2.639388] sd 0:0:0:0: [sda] No Caching mode page found
[    2.644814] sd 0:0:0:0: [sda] Assuming drive cache: write through

Welcome to the Toradex Easy Installer

This is a Linux based installer for Toradex modules. Currently, the installer
does not have a serial console interface. You can use the Toradex Easy Installer
via any of the available display interfaces using USB mouse/keyboard or via a
network connection using VNC. Use:
  # ip addr show eth0
to display the Ethernet IP address or use USB RNDIS at IP 192.168.11.1.

Check our documentation at:
  https://developer.toradex.com/software/toradex-easy-installer
/ #

And this is the output of a failing module using the same baseboard and thumb drive:

    Commercial temperature grade DDR3 timings, 64bit bus width.
Trying to boot from MMC1


U-Boot 2020.07-5.7.5+git.4baed786463e (Feb 08 2024 - 08:54:56 +0000)

CPU:   Freescale i.MX6DL rev1.4 996 MHz (running at 792 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 32C
Reset cause: POR
DRAM:  512 MiB
PMIC:  device id: 0x10, revision id: 0x21, programmed
MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Model: Toradex Colibri iMX6DL 512MB V1.1A, Serial# 12897713
Net:   eth0: ethernet@2188000
Hit any key to stop autoboot:  0
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
** Unrecognized filesystem type **
starting USB...
Bus usb@2184000: USB EHCI 1.00
Bus usb@2184200: USB EHCI 1.00
scanning bus usb@2184000 for devices... 1 USB Device(s) found
scanning bus usb@2184200 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Device 0: Vendor: General  Rev: 5.00 Prod: UDisk
            Type: Removable Hard Disk
            Capacity: 3840.0 MB = 3.7 GB (7864320 x 512)
... is now current device
Scanning usb 0:1...
BOOTP broadcast 1
DHCP client bound to address 172.16.6.110 (114 ms)
Using ethernet@2188000 device
TFTP from server 192.168.10.1; our IP address is 172.16.6.110; sending through gateway 172.16.0.254
Filename 'boot-tezi.scr'.
Load address: 0x17000000
Loading: T  ICMP Host Redirect to 192.168.10.1 T  ICMP Host Redirect to 192.168.10.1

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Based on the boot logs you’ve provided, I can see that both modules successfully detect the USB storage device (showing “1 Storage Device(s) found” and the same UDisk information), but the failing module cannot find the boot script on the USB drive.

Key Differences in Boot Behavior

The working module finds and executes the boot script:

  • Found U-Boot script /boot.scr
  • Successfully loads and boots Toradex Easy Installer

The failing module cannot find the boot script on USB and falls back to network boot:

  • Attempts DHCP and TFTP to load boot-tezi.scr from network
  • This suggests the USB filesystem structure or boot script is not being recognized

Potential Causes and Solutions

1. USB Boot Script Issues

The failing module can detect the USB device but cannot locate /boot.scr. This could indicate:

  • Corrupted boot script on the USB drive
  • Filesystem corruption on the USB partition
  • Different partition layout expectations

2. MMC Detection Differences

The failing module shows:

MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
** Unrecognized filesystem type **

This suggests it’s trying to boot from internal storage first and failing, which might affect the USB boot sequence.

3. Recommended Troubleshooting Steps

  1. Re-create the USB drive: Download a fresh Toradex Easy Installer image and recreate the USB drive to ensure the boot script and filesystem are intact(1)

  2. Try different USB ports: Test the failing module with the USB drive in different ports on your carrier board

  3. Verify USB drive compatibility: Some modules may be sensitive to specific USB drive types or formatting

  4. Check for hardware issues: Since this affects multiple new modules with the same serial number pattern, there might be a batch-specific hardware issue

4. Alternative Boot Methods

If USB boot continues to fail, you can use Toradex Easy Installer through:

  • Network boot: The failing module is already attempting this via TFTP
  • SD card boot: If your carrier board supports SD card slots
  • Recovery mode: For direct flashing without bootloader interaction

The fact that both modules detect the USB storage device identically suggests the USB hardware is functional, pointing to a software/filesystem issue with the boot process.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Both modules used the same USB device and same carrier board.

This suggests it’s trying to boot from internal storage first and failing, which might affect the USB boot sequence.

Since this affects multiple new modules with the same serial number pattern, there might be a batch-specific hardware issue

Where can I check if there are batch-specific hardware issues regarding MMC?

By the way, I just checked without our USB drive and I get the same error. So it is not related to our USB drive but to the factory firmware or module hardware:


                    Commercial temperature grade DDR3 timings, 64bit bus width.
Trying to boot from MMC1


U-Boot 2020.07-5.7.5+git.4baed786463e (Feb 08 2024 - 08:54:56 +0000)

CPU:   Freescale i.MX6DL rev1.4 996 MHz (running at 792 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 41C
Reset cause: POR
DRAM:  512 MiB
PMIC:  device id: 0x10, revision id: 0x21, programmed
MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Model: Toradex Colibri iMX6DL 512MB V1.1A, Serial# 12897713
Net:   eth0: ethernet@2188000
Hit any key to stop autoboot:  0
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
** Unrecognized filesystem type **
starting USB...
Bus usb@2184000: USB EHCI 1.00
Bus usb@2184200: USB EHCI 1.00
scanning bus usb@2184000 for devices... 1 USB Device(s) found
scanning bus usb@2184200 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
BOOTP broadcast 1
DHCP client bound to address 172.16.6.110 (114 ms)
Using ethernet@2188000 device
TFTP from server 192.168.10.1; our IP address is 172.16.6.110; sending through gateway 172.16.0.254
Filename 'boot-tezi.scr'.
Load address: 0x17000000
Loading: *

You’re absolutely correct - this is clearly a module-specific issue rather than a USB drive problem. The fact that you get “MMC: no card present” and “** Unrecognized filesystem type **” without any USB device connected confirms this is an internal eMMC issue.

Where to Check for Batch-Specific Issues

You can check for known hardware issues and product change notifications in several places:

1. Product Change Notifications (PCNs)

The Colibri iMX6DL 512MB V1.1A revision history shows several PCNs that document known issues(1). Your serial number 12897713 corresponds to a specific production batch that may have documented issues.

2. Revision History Documentation

According to the documentation, the Colibri iMX6DL 512MB has had multiple revisions addressing various issues(1):

  • V1.1A addressed eMMC-related changes including “Changed internal eMMC voltage from 3.3V to 1.8V”
  • There were also “Resolved start-up issue when VBATT is supplied and the module was shut-down by software”

3. Community Reports

There are documented cases of similar eMMC issues. One community report shows modules experiencing eMMC corruption with error messages like “Failed to load OS image from SD,'FNC” and “MMC corruption is mentioned”(2). Another report documents “mmcblk0: error -110 sending stop command” issues affecting multiple Colibri iMX6S modules(3).

Root Cause Analysis

Your boot log shows:

MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
** Unrecognized filesystem type **

This indicates the module is detecting the eMMC hardware (mmc0) but cannot read the filesystem, suggesting either:

  • eMMC corruption in the boot partition
  • Hardware failure in the eMMC interface
  • Factory firmware corruption

Recommended Actions

  1. Contact Toradex Support with your serial numbers to check if there are known issues with this production batch
  2. Check Product Change Notifications for your specific module revision at the developer portal
  3. Consider RMA if multiple modules from the same batch show identical symptoms
  4. Use Recovery Mode to attempt reflashing the factory firmware if the eMMC is still functional

The pattern you’re seeing across multiple modules with similar serial numbers strongly suggests a batch-specific issue that should be escalated to Toradex support for investigation.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Hello @lmoellendorf,

I checked our production logs and both 12897713 and 12897980 were pre-programmed with the same version of the Toradex Easy Installer (5.7.5).
Therefore, they should behave the same way out of the box.
I see that you have programmed 12897980 with 5.7.6. Could you test if you get the same issue with 5.7.5 installed?

Regardless, it would be useful to better understand your flashing procedure.
Could you clarify what is the procedure you are using?
For example, you mentioned USB boot, why is that being done?

Best Regards,
Bruno

The failing module is 12897713 which still has your stock firmware installed. The working module 12897980 most likely had been updated using our USB boot method. So most likely it was working with your stock firmware.

The failing module also fails if no USB drive is involved. Or is the output below to be expected from a module with factory firmware?

MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
** Unrecognized filesystem type **

Do you think it is worth the effort downgrading the working module to see if it fails with stock firmware?

For initial flashing we use a Toradex Easy Installer thumbdrive with our image as explained here:

We use this method because it neither requires a display, serial interface nor network interface. Our manufacturing just plugs in the thumb drive, powers the system on and waits until it has been flashed. This works for most modules but we found a few which do not as explained above.

I am not sure if I have to mention you if I am replying to your post. So just to make sure: @bruno.tx

Hello @lmoellendorf,

Thanks for your answer.

This would mainly be to discard any issues with the actual SoMs.
I think this is not the case here, so testing this would not be required.
What is important is to review your production programming procedure with the image that is actually pre-installed to the board, so you know it will work in production.


One thing that is still not clear to me is why you need to use the USB boot method to install your image.
Is the pre-flashed toradex easy installer unable to flash your OS?
It would be best to fix an issue on that front before trying to use the easy installer via USB boot, as such setup is untested and unsupported.


There is no need to mention us directly here.
When a reply is posted we get notified on an internal system.

Best Regards,
Bruno