Verdin iMX95 (B0): uuu recovery consistently fails at ~66% of SDPS boot — LIBUSB_ERROR_NO_DEVICE, reproduced on 3 hosts

Hi Toradex team,

We’re bringing up a new Verdin iMX95 for a product and cannot get the Toradex Easy Installer onto it via recovery mode. The uuu SDPS transfer fails at the same point on every machine we’ve tried.

Our hardware:

  • Module: Verdin iMX95, silicon revision B0 (confirmed by the “B0” sticker on the SOM itself).
  • Carrier: Verdin Development Board, V1.3A.
  • Recovery entered via the recovery (REC) button + USB-C OTG port (X34).

Software:

  • Toradex Easy Installer 7.6.1+build.12 for verdin-imx95 (scarthgap, the current build — as far as I know that’s correct for B0 silicon).
  • uuu: libuuu_1.5.233.

Running recovery-linux.sh, the board is detected correctly and the recovery flow begins, but the very first SDPS transfer aborts at a DETERMINISTIC ~66% every single time:

New USB Device Attached at 1:1-3376DE49…
1:1-…>Start Cmd:SDPS: boot -f ../imx-boot-recoverytezi
66% 1:1-…>Fail HID(W): LIBUSB_ERROR_NO_DEVICE (-4)(0.2s)

On a Windows host the equivalent failure is LIBUSB_ERROR_PIPE (-9) at the same SDPS boot step.

At the moment of failure, the Linux kernel logs:

usb usb1-port1: disabled by hub (EMI?), re-enabling…
usb 1-1: USB disconnect, device number NN
usb 1-1: new high-speed USB device number NN+1 using xhci_hcd … re-enumerates as 1fc9:015d, then the cycle repeats.

So the host controller is electrically disabling the port partway through the bootloader stream. The device always re-enumerates cleanly as 1fc9:015d (uuu matches it as MX95), SDPS starts, ~1.6 MB of the 2.4 MB imx-boot-recoverytezi transfers, then the port drops.

What we’ve ruled out:
The exact same 66% failure reproduces across two physically different computers and three USB stacks:

  1. VMware Ubuntu guest, virtual USB 2.0 (EHCI)
  2. VMware Ubuntu guest, virtual USB 3.1 (xHCI)
  3. Native Windows (uuu/WinUSB) → LIBUSB_ERROR_PIPE
  4. A completely separate bare-metal native-Linux laptop (real xHCI) → identical LIBUSB_ERROR_NO_DEVICE at 66%, with the “disabled by hub (EMI?)” kernel message above.

We also:

  • Tried multiple USB-C cables and different USB ports.
  • Applied the usual host-side mitigations on Linux: stopped ModemManager and brltty, disabled USB autosuspend, and unbound the usbhid driver from the SDP interface. These moved it from an instant 0% failure to 66%, but the 66% wall is immovable.
  • Confirmed the silicon is B0 and the Easy Installer version is the matching one (we are aware A1 needs <=7.4.x; this is B0 on 7.6.1).
  • Verified recovery entry is correct (the board does enter SDP and SDPS begins) - this is not a boot-mode/recovery-button problem.
  • Tried several other Easy Installer builds (7.x, builds 8-12) - all fail identically with LIBUSB_ERROR_NO_DEVICE.

Is this a known issue on Verdin iMX95 B0 recovery, and is there a workaround (e.g. a specific uuu version, an alternative serial-download/CM33 procedure, or a different recovery bootloader)? What can we do to solve this issue?

Thanks very much for the help.

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 documentation, your issue appears to be related to the B0 silicon transition on the Verdin iMX95. The documentation confirms that there was a significant silicon revision change from A1 to B0(1).

Known Issue with B0 Silicon

According to the Verdin iMX95 revision history, there was a major change in the silicon revision from A1 to B0(1). The documentation shows that product 00891000 (V1.0A) used the A1 silicon and was marked as EOL, while 00891001 (V1.0B) introduced the B0 silicon revision(1).

Troubleshooting Steps

The documentation provides several troubleshooting approaches for recovery mode issues(2):

USB Connection Requirements

  • Avoid using a USB Hub between the PC and the USB OTG port(2)
  • Avoid using Virtual Machines(2)

Since you’ve already tested on native hardware and ruled out virtualization issues, this suggests a deeper compatibility problem.

Alternative Recovery Method

The documentation mentions an alternative approach using external media (SD Card/USB Stick)(2). While this method is noted as “not officially supported by Toradex,” it might work around your USB recovery issues:

  1. Prepare External Media: Unzip Easy Installer into the root directory of a FAT-formatted USB stick or SD Card(2)
  2. Boot from SD Card: Insert the external media and power on the carrier board(2)
  3. Boot from USB Stick: This requires U-Boot console access through the serial port debug UART(2)

Specific Recovery Mode Documentation

For your exact hardware combination (Verdin iMX95 with Verdin Development Board), the documentation provides specific recovery mode instructions(2). You can access the detailed recovery procedure at the recovery mode links provided in the documentation(2).

Recommended Next Steps

  1. Try the external media approach as an immediate workaround
  2. Use the serial console method if the external media approach doesn’t work
  3. Check for updated Easy Installer versions specifically built for B0 silicon
  4. Verify your exact PID8 to ensure you have the correct B0 variant (00891001 or 00891002)(1)

The consistent 66% failure point across multiple hosts strongly suggests a silicon-level compatibility issue with the recovery bootloader rather than a host-side USB problem.

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 @Yonatan,

Which exact hardware (SoM, carrier board) do you have?
Could you send me the serial numbers?
A picture would also be useful.

I suspect you may have an i.MX95 EVK which does not support the Toradex Easy Installer.

Best Regards,
Bruno

Hi Bruno, thanks for jumping in.

I’d rather not post the photo or serial numbers in the public thread, and the community doesn’t seem to offer private messages. Could you email me at the address registered to my Toradex community account? I’ll reply with photos of the SoM and carrier board plus the serial numbers.

In the meantime:

  • SoM: Toradex Verdin iMX95. It carries a “B0” sticker (B0 silicon) and a “QAG066” traceability sticker. The 8-digit product number is (probably) under the heatsink that is bonded to the module and can’t be removed safely.
  • Carrier: marked “V1.3A”.
  • The board boots fine and the U-Boot banner reads:
    Model: Toradex i.MX95 19X19 Verdin EVK
    U-Boot 2025.04-g9383f8387dc7 (Jun 04 2025)
    SM firmware Build 646; ELE firmware 2.0.2-2a118457
    It currently boots the pre-installed NXP reference image from eMMC.

So the board is functional and runs U-Boot from eMMC. The only problem is the Toradex Easy Installer recovery: “SDPS: boot -f imx-boot-recoverytezi” aborts at ~66% with LIBUSB_ERROR_NO_DEVICE (Linux) / LIBUSB_ERROR_PIPE (Windows) on every host I’ve tried.

If this board does not support the Toradex Easy Installer, could you advise:

  1. What is the supported way to flash Torizon OS onto this board? Is it the NXP/Yocto “uuu -b emmc_all” flow (imx-boot-imx95-19x19-verdin-sd.bin-flash_all + a .wic image) rather than the Tezi recovery package?
  2. Since U-Boot already runs, can I flash directly from U-Boot — e.g. UMS (expose eMMC over USB) or fastboot — to avoid the SDPS step entirely? If so, which images and exact commands?
  3. Where do I download the correct Torizon image and bootloader for this exact module/silicon (B0) and board?

I can provide full “uuu -v -V” logs and the complete U-Boot boot log.

Thanks!

Hello @Yonatan,

You can send a private message here on the community or send the information via email using support@toradex.com.
To create a private message on the community, when clicking on “Ask a question” you can choose “Hidden Topic”.

From your description, it really looks like you have the i.MX95 EVK and not the Verdin iMX95.
If you agree, there is no need to send more information as this is the cause of the problem.

If that is the case, the Toradex Easy Installer is not supported, as the software support was provided by NXP on this product.
As per available documentation on flashing, you can check the getting started guide.
While we do have pre-built Torizon OS images, they are for A1 silicon, so Torizon OS would need to be built from source for B0 silicon, as documented here: meta-toradex-torizon/docs/README-nxp.md at scarthgap-7.x.y · torizon/meta-toradex-torizon · GitHub

Generally, I would recommend moving to one of our SoMs with the iMX95 SoC, as you get the expected software support from Toradex.
The i.MX95 EVK has gone EOL and support will end for this product. It was intended only for early evaluation of the i.MX95 SoC.

If you need to do some tests on the EVK before going in the direction of a SoM, using one of NXP’s reference images should provide more features than Torizon OS on this specific platform.
The getting started guide goes over how to get NXP’s images as well.

Best Regards,
Bruno