Skip to content
nxpfrankli edited this page Oct 18, 2024 · 35 revisions

Welcome to the UUU (Universal Update Utility), the next evolution of MFGTools, also known as MFGTools v3.

UUU is a tool designed for deploying images on Freescale/NXP I.MX chips.

Over time, the demand for a cross-platform update utility that works seamlessly on both Linux and Windows has grown. UUU meets this need, offering identical functionality and usage on both operating systems, allowing the same scripts to run smoothly on either platform.

UUU is command line tools. look like

uuu (universal update utility) for nxp imx chips -- libuuu-1.0.1-gffd9837

Succues:0       Failure:3               Wait for Known USB Device Appear...

1:11     5/5 [                            ] SDP: jump -f u-boot-dtb.imx -ivtinitramf....
2:1      1/5 [===>                        ] SDP: boot -f u-boot-imx7dsabresd_sd.imx ....

UUU is designed as a common library and UI, making it easy for users to integrate the UUU library into their own tools. It also seamlessly runs within any scripts.

PDF version of the wiki content is available on the release page for convenience.

Running environment

Windows 7 user please read WIN7-User-Guide

Common Usage

Set the board’s boot pin to USB serial download mode. In most cases, the iMX ROM will automatically fall back to USB serial download mode if there is a boot failure.

To download and boot U-Boot:

uuu bootloader

To burn U-Boot into eMMC:

uuu -b emmc bootloader

To burn the boot image into QSPI flash:

uuu -b qspi qspi_bootloader

To burn the root filesystem image into eMMC:

uuu -b emmc_all bootloader rootfs.wic

To decompress the root filesystem image and burn it into eMMC:

uuu -b emmc_all bootloader rootfs.wic.zstd

To decompress the root filesystem image and burn it into eMMC without the bootloader (since version 1.4.146 and after 2021 Q4 Yocto image):

uuu -b emmc_all rootfs.wic.zstd

Notes: "Bootloader" refers to a bootable image that includes the ROM-required header. For i.MX6 and i.MX7, this is typically uboot.imx, while for i.MX8QXP, i.MX8QM, i.MX8MM, and i.MX8MQ, it is flash.bin.

To burn the release image into eMMC, use the following command:

uuu L4.9.123_2.3.0_8mm-ga.zip

Note: Some releases bundle multiple board configurations into a single zip package, use uuu release.zip/uuu.auto-<boardname>

For more usage details, please refer to the Example.

UUU Script

UUU scripts are simple plain text files.

The first line must be:

uuu_version 1.0.1

The version number specifies the minimum UUU version required to parse and run the script.

After that, include the UUU commands.

UUU commands follow this format:

PROTOCOL: CMD

Here’s an example script for booting U-Boot on i.MX6 and i.MX7:

uuu_version 1.0.1
SDP: dcd -f u-boot.imx
SDP: write -f u-boot.imx -ivt 0
SDP: jump -f u-boot.imx -ivt 0

For more sample scripts, see: Sample-script[].

The following table shows environment variables that may be useful when writing UUU scripts.

Table 1. Table Android Fastboot environment

Variable

Description

fastboot_dev

fastboot flash device, support mmc and sata

fastboot_buffer

fastboot download buffer adddress

fastboot_bytes

fastboot download file size

emmc_dev

eMMC device number

sd_dev

sd slot device number

Firmware(default it is uboot) Requirements

What you want Required Firmware

Download bootloader

N/A

Burn Image to eMMC/SD

uboot with fastboot enable

Burn Image to qspi\spi\nor

uboot with fastboot enable

Burn Image into Nand flash

uboot(1), linux kernel\initramfs\uboot\dtb

Need linux shell cmd such as fdisk

uboot(1), linux kernel\initramfs\uboot\dtb

Boot linux kenrel with rootfs already in eMMC

uboot with fastboot enable

Boot Linux kernel with nfs over USB

uboot with fastboot enable, initramfs

(1) It’s recommended to enable fastboot. If the ROM HID supports writing additional images to DDR, you can load the kernel, DTB, and initramfs to DDR before jumping to U-Boot. Enabling fastboot provides more flexibility for modifying the kernel command line.

Setup auto parameter complete

windows

Just power shell support customized auto complete

Powershell: Enjoy auto [tab] command complete by run below command or put into Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

   Register-ArgumentCompleter -CommandName uuu -ScriptBlock {param($commandName,$parameterName,$wordToComplete,$commandAst,$fakeBoundParameter); C:\Users\nxa23210\uuu\uuu\x64\Release\lib\uuu.exe -autocomplete $parameterName }

linux

Enjoy auto [tab] command complete by put below script into /etc/bash_completion.d/uuu

  _uuu_autocomplete()
  {
       COMPREPLY=($(/home/lizhi/source/mfgtools/uuu/uuu $1 $2 $3))
  }
  complete -o nospace -F _uuu_autocomplete  uuu