Flashing Linux BSP using UUU

Document created by Aldo Gutierrez Employee on Oct 10, 2019Last modified by Aldo Gutierrez Employee on Oct 18, 2019
Version 4Show Document
  • View in full screen mode

Hello everyone, this document will explain on how to use the UUU (Universal Update Utility) tool to flash Linux to an i.MX device (i.MX 8MM).

 

Requirements:

 

 

UUU auto script

For this example is used the L4.14.98_2.0.0_ga demo image for the i.MX 8MM, inside the demo image we will find the auto script, which by default flash the eMMC of the board, the structure of the script is as following

 

/***********************************************************************************/

uuu_version 1.2.39

 

# This command will be run when i.MX6/7 i.MX8MM, i.MX8MQ

SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk

 

# This command will be run when ROM support stream mode

# i.MX8QXP, i.MX8QM

SDPS: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk

 

# These commands will be run when use SPL and will be skipped if no spl

# SDPU will be deprecated. please use SDPV instead of SDPU

# {

SDPU: delay 1000

SDPU: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -offset 0x57c00

SDPU: jump

# }

 

# These commands will be run when use SPL and will be skipped if no spl

# if (SPL support SDPV)

# {

SDPV: delay 1000

SDPV: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -skipspl

SDPV: jump

# }

 

FB: ucmd setenv fastboot_dev mmc

FB: ucmd setenv mmcdev ${emmc_dev}

FB: ucmd mmc dev ${emmc_dev}

FB: flash -raw2sparse all fsl-image-validation-imx-imx8mmevk.sdcard

FB: flash bootloader imx-boot-imx8mmevk-sd.bin-flash_evk

FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;

FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0

FB: done

/***********************************************************************************/ 

 

In short, when the board goes into serial downloader mode UUU downloads the bootloader to internal RAM, once done and uboot is running, through fastboot utility it will flash .sdcard file and uboot to the eMMC on the board.

 

More information about the protocol UUU use please refer to the UUU documentation (UUU.pdf) section 5 Supported protocol.

 

Running the tool

In order to run the tool the binary of uuu needs to be downloaded, the binary files can be downloaded from the link above, uuu.exe is for Windows and uuu is for Linux.

Once downloaded it can be placed inside the same file as the demo image, this so it is easy to run and cleaner on the shell commands.

 

Windows

In windows OS the tool should be run using the Windows PowerShell in administrator mode, once open we will run the next commands:

> .\uuu.exe uuu.auto

 

Linux

>$ sudo ./uuu uuu.auto

 

The tool will start running and should be waiting for any i.MX device to be detected by host pc

 

Preparing the board

For the board to be flashed it is needed to be in download mode, the switch configuration (i.MX 8MM EVK) is as following:

SW1101  -  1010XXXXXX

SW1102  -  XXXXXXXXX0

 

Connect a USB cable from the host pc which will run the tool to the USB OTG/TYPE C port, usually specified as download, on the board.

 

Connect a USB cable from the host to the OTG-to-UART for console output, usually specified as debug, on the board.

 

Open terminal emulator program with the following settings:

Bits per second - 115200

Data bits - 8

Parity - None

Stop bits - 1

Flow control - None

 

Power on the board, the download will start and the serial prompt will show the progress in uboot, wait until the tool show success.

 

Finally power off the board and change the switch configuration to boot from the eMMC, power on the board again and it should boot successfully!

 

Built in scripts

One can use the built in scripts using the -b option to burn the bootloader  and the rootfs to the target flash, just type the command accordingly to the target flash device.

 

 SD

Write bootloader only:

Windows:

> .\uuu.exe -b sd <bootloader>

Linux:

$ sudo ./uuu -b sd <bootloader>

 

Replace <bootloader> for your .imx/.bin file, example using the i.MX 8MM for Windows and Linux respectively below.

> .\uur.exe -b sd imx-boot-imx8mmevk-sd.bin-flash_evk

$ sudo ./uuu -b sd imx-boot-imx8mmevk-sd.bin-flash_evk 

 

Write whole Linux image

Windows:

> .\uuu.exe -b sd_all <bootloader> <rootfs>.sdcard

Linux:

$ sudo ./uuu -b sd_all <bootloader> <rootfs>.sdcard

 

Replace <bootloader> and <rootfs> for the name of your .imx/.bin and .sdcard files respectively, example using the i.MX 8MM below.

> .\uuu.exe -b sd_all  imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard

$ sudo ./uuu -b sd_all  imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard

 

eMMC

Write bootloader only

Windows:

> .\uuu.exe -b emmc <bootloader>

Linux:

$ sudo ./uuu -b emmc <bootloader>

 

Example using i.MX 8MM

> .\uuu.exe -b emmc imx-boot-imx8mmevk-sd.bin-flash_evk

$ sudo ./uuu -b emmc imx-boot-imx8mmevk-sd.bin-flash_evk

 

Write whole Linux image

Windows:

> .\uuu.exe -b emmc_all <bootloader> <rootfs>.sdcard

Linux:

$ sudo ./uuu -b emmc_all <bootloader> <rootfs>.sdcard

 

Example using i.MX 8MM

> .\uuu.exe -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard

$ sudo ./uuu -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard

 

Hope this will helpful for everyone who is starting to use this flashing tool.

1 person found this helpful

Attachments

    Outcomes