Booting from USB using UUU (Universal Update Utility)¶
Introduction¶
UUU is a small tool from NXP used to boot and flash i.MX boards over USB. Think of it as a simple "USB installer" for the board. More details: https://github.com/NXPmicro/mfgtools
Note: Variscite boards already ship with a bootloader in the internal storage. UUU is optional, but useful when you want to reflash the board from a PC.
Step by step usage instructions¶
1. Install UUU on the host PC¶
sudo apt-get install libusb-1.0-0-dev libbz2-dev libzstd-dev pkg-config cmake libssl-dev g++
cd ~
git clone https://github.com/NXPmicro/mfgtools.git
cd mfgtools
git checkout uuu_1.5.243
cmake .
make
Warning:
The uuu_script generated by Variscite's UUU installer package uses the -bmap option.
Use uuu_1.5.163 or newer for -bmap support (the example above uses a newer tag).
2. Build the UUU installer package (Yocto)¶
Select the Image Used by the Installer¶
The var-uuu-installer recipe uses the var-uuu-installer.bbclass class to
pick the rootfs image and generate the uuu_script. The class expects a rootfs
base name that matches files in tmp/deploy/images/<machine>/:
<image>-<machine>.rootfs.wic<image>-<machine>.rootfs.wic.bmap
Set the image in conf/local.conf:
If VAR_FLASH_IMAGE_NAME is not set, the class defaults to fsl-image-gui-chromium.
The installer tarball is created here:
3. Put the board in USB download mode¶
Set the boot-mode switch as described in yocto-build-release (SD boot with no SD card inserted). Connect the board to the PC using the USB OTG port and power it on.
If your board only has a regular USB type-A connector, use a "male USB type-A to male USB type-A" cable.
4. Extract and run the installer¶
tar --use-compress-program=unzstd -xf ./tmp/deploy/images/imx8mp-var-dart/var-uuu-installer-imx8mp-var-dart.tar.zst -C ~
cd ~/uuu-installer
sudo uuu -b uuu_script
Set the boot selection switch to eMMC and reboot. The board should now boot from eMMC.