Using 'uuu' to flash e.MMC
  • 28 Apr 2022
  • 4 Minutes to read
  • Dark
    Light
  • PDF

Using 'uuu' to flash e.MMC

  • Dark
    Light
  • PDF

Article summary

Introduction

This article takes you through the process to load e.MMC with the Universal Update Utility or uuu. This is the name of NXP's MfgTool 3.0. This tool is able to be executed under Windows and Linux environment and can be used to load and configure the e.MMC of images over a USB-OTG port. When running uuu and loading a blank e.MMC, you will need to put the SOC into serial download mode which, depending on the target platform, normally requires configuring boot jumpers or boot mode switches.

Obtain and install the 'uuu' tool

There are several ways that you can obtain the 'uuu' tool. You can download prebuilt versions of it, or you can build it from source.

Fetch a prebuilt binary from TechNexion's download site

Prebuilt binaries of uuu can be download from TechNexion's download site

These are conveniently packaged with boot images for most of our platforms as well.

NOTE regarding libusb on Windows

libusb-1.0.dll is required for uuu to be excuted under MS windows, but is absent in the link above.

Clone "uuu" on TechNexion github

You can clone the source for 'uuu' from our github repository.
https://github.com/TechNexion/imx-mfgtools-tn

Please follow the README within the repository to build the tool from source.

NOTE

For more information about how to use uuu, please refer to UUU.pdf in the link above.

Use uuu to flash image under Linux

  1. Install required packages for running mfgtool (uuu). The following command will install them onto an Ubuntu host machine.
sudo apt-get install libusb-1.0.0-dev libzip-dev libbz2-dev
  1. While the target board is powered off, set the boot jumpers to boot from serial download. Then, USB Type-C peripheral cable to the board, and the other end to the host PC. If the target board is powered using another source than USB-OTG (via a Type C connector), then connect power to the unit.

Setting the Boot Configuration to Serial Download Mode

ModuleBoard
PICO-IMX8M-MINIPICO-PI-IMX8M-MINI
PICO-IMX8M-MINIPICO-WIZARD-IMX8M-MINI
All EDM-G ModulesWB-EDM-G Baseboard Boot Mode Selection Button
  1. Locate the image you want to flash. This will usually end in .img, .sdcard, or .sdcard.bz2
Note regarding compressed images

uuu has the ability to decompress Bzip2 (.bz2) compressed files during the flashing process, however an /* but be appended to the image filename. It does not have the ability to parse xzip (.xz) files.

  1. Execute uuu to start flashing process.

For .bz2 compressed images

cd imx-mfg-uuu-tool
sudo ./uuu/linux64/uuu -b emmc_img imx8mm/pico-imx8mm-flash.bin <path-to-image-to-flash>/<image name>.wic.bz2/*

For decompressed images

cd imx-mfg-uuu-tool
sudo ./uuu/linux64/uuu -b emmc_img imx8mm/pico-imx8mm-flash.bin <path-to-image-to-flash>/<image name>.wic
Older Yocto Revisions

For older Yocto revisions, the default name of the image ended in .sdcard, so please use the following:

For .bz2 compressed images

cd imx-mfg-uuu-tool
sudo ./uuu/linux64/uuu -b emmc_img imx8mm/pico-imx8mm-flash.bin <path-to-image-to-flash>/<image name>.sdcard.bz2/*

For decompressed images

cd imx-mfg-uuu-tool
sudo ./uuu/linux64/uuu -b emmc_img imx8mm/pico-imx8mm-flash.bin <path-to-image-to-flash>/<image name>.sdcard
  1. Once the flash process completes, power off the board, set the boot jumpers to boot from eMMC and apply power to the board to boot from eMMC.

Board jumper/switch configurations to boot from e.MMC

ModuleBoard
PICO-IMX8M-MINIPICO-PI-IMX8M-MINI
PICO-IMX8M-MINIPICO-WIZARD-IMX8M-MINI
All EDM-G ModulesWB-EDM-G Baseboard Boot Mode Selection Button

Use uuu to Flash Images Under Microsoft Windows

  1. First, with the board powered off, set the boot jumpers to boot into serial download mode.

Setting the Boot Configuration to Serial Download Mode

ModuleBoard
PICO-IMX8M-MINIPICO-PI-IMX8M-MINI
PICO-IMX8M-MINIPICO-WIZARD-IMX8M-MINI
All EDM-G ModulesWB-EDM-G Baseboard Boot Mode Selection Button
  1. Then attach a USB Type-C peripheral cable to the board, and the other end to the host PC. If the board is powered with a source other than USB, power the board on.

  2. Locate the image that you will want to program onto the e.MMC. This could come from one of TechNexion's demo images, or it could also be an image that you have built yourself. It will usually have a suffix .wic, .wic.bz2, .sdcard, .sdimg, or .sdcard.bz2

Note regarding compressed images

uuu has the ability to decompress Bzip2 (.bz2) compressed files during the flashing process, however an /* but be appended to the image filename. It does not have the ability to parse xzip (.xz) files.

  1. Run Windows Powershell or cmd with administrator permission.
  2. Run uuu to start flashing process:
    To program an uncompressed image file:
cd imx_mfg_uuu_tool
uuu\windows64\uuu.exe -b emmc_img imx8mm\pico-imx8mm-flash.bin <path\to\image>.sdcard

To program a compressed (Bzip2 format) image file.

cd imx_mfg_uuu_tool
\uuu\windows64\uuu.exe -b emmc_img imx8mm\pico-imx8mm-flash.bin <path\to\image>.sdcard.bz2/*

Uuu_windows_demo_02.png

Here,imx-boot-pico-imx8mm-sd.bin is the bootloader.fsl-image-qt5-validation-imx-pico-imx8mm.sdcard.bz2 is the sdcard image compressed with .bz2 format

  1. Once the flash process completes. Power off the board, set the boot jumpers back to Boot from eMMC, apply power to the board to boot from eMMC.

Board jumper/switch configurations to boot from e.MMC

ModuleBoard
PICO-IMX8M-MINIPICO-PI-IMX8M-MINI
PICO-IMX8M-MINIPICO-WIZARD-IMX8M-MINI
All EDM-G ModulesWB-EDM-G Baseboard Boot Mode Selection Button

Troubleshooting:

  • After starting uuu, the board should enter to fastboot mode and wait for request from host PC:

Uuu_troubleshooting_01.png

  • If it stops in fastboot mode, you might need to install USB driver under MS Windows. Please refer to Use zadig to install winusb driver chapter in UUU.pdf in MFGtool github.

Uuu_troubleshooting_02.png

  • Enter shell mode is helpful to check uuu fails on what step. Add -s to enter shell mode. uuu.inputlog record all input commands you can use "uuu uuu.inputlog" next time to run all commands
.\uuu\windows64\uuu.exe -s -b emmc_all imx-boot-pico-imx8mm-sd.bin fsl-image-qt5-validation-imx-pico-imx8mm.sdcard.bz2/*

Was this article helpful?