Using UUU with BSP7 on verdin imx8mm

Hi Toradex,

I am trying to use the uuu utility to do DFU for bootloader development. We need some bootloader customizations for our hardware which we have code for BSP5 and now trying to migrate to BSP7. In trying to use uuu, I can boot the SPL but then it enumerates as:

Bus 003 Device 019: ID 1b67:4fff Toradex USB download gadget

Which doesn’t match any of the old PID:VIDs that were used with u-boot to finish SDP loads, boot the full bootloader and flash to memory. How can I download the remaining image to U-boot SDP via USB?

Hi, I’m the Toradex AI Assistant.

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


USB Device Mode and UUU Configuration for Bootloader Development

Based on your question about using the uuu utility for DFU bootloader development and the PID/VID enumeration issue, here’s the information from the Toradex documentation:

U-Boot USB Device Mode Configuration

The Toradex USB device identification has evolved between BSP versions. In U-Boot, the CONFIG_USB_DEVICE config symbol allows for USB peripheral mode support(1). Since BSP V2.4, all modules use a common U-Boot version that configures the USB peripheral device identification using the Toradex vendor ID and product ID(1).

USB Product/Vendor ID Information

According to the documentation, USB peripheral devices need vendor and product identification(1). Toradex has its own vendor ID (0x1b67) and assigns a product ID for each Colibri and Apalis product(1). The USB Product ID is calculated as the sum of an offset of 0x4000 and the hexadecimal representation of the product identifier(1).

For example: 0x4000 + 12 = 0x400c (where the product identifier is the first 4 digits of the Toradex Product Number, e.g. 0012 for Colibri VF61 256MB IT V1.1B)(1).

UUU Script Configuration

From the community forum discussion, there’s information about customizing UUU scripts for bootloader flashing(2). The approach involves:

  1. Using UUU Auto Scripts: You can create custom uuu.auto scripts that load a U-Boot image to RAM, boot it, and then use fastboot commands to send commands directly to U-Boot for writing to eMMC(2).

  2. Starting Point: You could start with the existing uuu.auto script and U-Boot image from Easy Installer, as this provides a working U-Boot loaded from RAM(2). From there, you can customize the fastboot commands to achieve the U-Boot flashing you need(2).

Recommended Approach

The documentation suggests that for bootloader development and flashing without Easy Installer, you should:

  1. Write a custom uuu script that performs the same operations as the standard flashing process(2)
  2. Use the existing U-Boot image as a starting point to get a working U-Boot loaded from RAM(2)
  3. Customize the fastboot commands within the script to achieve your specific U-Boot flashing requirements(2)

Important Considerations

When manually flashing, be careful not to destroy the config block (512 bytes at the end of the first boot partition)(2). This is crucial for maintaining proper module identification and configuration.

The PID/VID you’re seeing (1b67:4fff) appears to be the USB download gadget mode, which is different from the standard operational USB identifications documented for the modules.

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.

Actually, looking in the toradex easy installer image, you can use:

SDP: boot -f ../imx-boot-recoverytezi
CFG: SDPV: -chip SPL1 -vid 0x1b67 -pid 0x4fff
SDPV: delay 1000
SDPV: write -f ../imx-boot-recoverytezi -skipspl
SDPV: jump

This is the new protocol to use with newer U-Boot versions in BSP7