Skip to content
nxpfrankli edited this page Sep 24, 2021 · 30 revisions

Welcome to the UUU (Universal Update Utility). This is an evolution of MFGTools (aka MFGTools v3).

UUU is Freescale/NXP I.MX Chip image deploy tools.

With the time, the need for an update utility portable to Linux and Windows increased. UUU have the same usage on both Windows and Linux. It means the same script works on both OS.

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 design as common library and UI. So user can easily integrate into their tools with uuu library. UUU also easy run in any scripts.

PDF of wiki content also is available at release page.

Running environment

Windows 7 user please read WIN7-User-Guide

Typical Usage

Set board boot pin to serial download mode. Generally iMX ROM will fail back to usb serial download mode if boot failure.

Download uboot

uuu bootloader

Burn uboot into emmc

uuu -b emmc bootloader

Burn bootimage into QSPI flash

uuu -b qspi qspi_bootloader

Burn rootfs image into emmc

uuu -b emmc_all bootloader rootfs.sdcard

Decompress rootfs image and burn into emmc (since 1.1.87)

uuu -b emmc_all bootloader rootfs.sdcard.bz2

Decompress rootfs image and burn into emmc without bootloader (since 1.4.146 and after 2021 Q4 yocto image)

uuu -b emmc_all rootfs.wic.bz2

Notes: bootloader means bootable image, which included ROM required header. for imx6/7, it should be uboot.imx generally. for imx8qxp\imx8qm\imx8mm\im8mq, it is flash.bin.

Burn release image into emmc

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

Note: some release combine multi board into one zip package, you need use uuu release.zip/uuu.auto-<boardname>

More usage please refer Example

Typical Script

uuu’s script is plain text file

**first line must be

uuu_version 1.0.1

version number represent the minimum uuu version that uuu can parse this script.

Then flow uuu commands.

UUU command format as

PROTOCOL: CMD

The below is example to boot uboot for imx6 and imx7.

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

more sample scripts see Sample-script

The below table environment may be used when write uuu script

Table 1. Table 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

License

uuu is licensed under the BSD license. See LICENSE. The BSD licensed prebuilt Windows binary version of uuu is statically linked with the LGPL libusb library, which remains LGPL.

What Firmware Need

What you want Firmware Need

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) prefer enable fastboot. If ROM HID support write additional image to DDR place, you can write kernel\dtb\initramfs to ddr before jump to uboot. Enable fastboot give more flexibility to change 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

L4.9.123_2.3.0_8MM GA

It is first official BSP release to support uuu For L4.9.123_2.3.0_8MM GA with i.MX8M Mini, see [How-to-use-UUU-on-Windows]