Imx uuu

From Variscite Wiki
Revision as of 15:29, 2 February 2020 by Admin (talk | contribs) (Created page with "<!-- Set release according to "release" parameter in URL and use Sumo_V2.1_DART-MX8M as default --> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!-- --> {{#lst:Yocto_Plat...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Booting from USB using UUU utility

Introduction

UUU is an open source utility by NXP that allows to download and execute code on NXP i.MX5/i.MX6/i.MX7 and Vybrid SoCs through the Serial Download Protocol (SDP).
Most commonly it is used as a replacement for NXP's MFGTOOL to load SPL and U-Boot via the USB OTG port.


Further reading:
https://github.com/boundarydevices/imx_usb_loader/blob/master/README.md


Note:
All Variscite SOMs are shipped with U-Boot pre-programmed on the SOM's internal storage.
In addition, all Variscite carrier boards have an SD card slot, and even in the unlikely event of the SPL/U-Boot being erased from the SOM's internal storage, the SOM can always be booted from an SD card (like our recovery SD card, for example).
So, generally, this utility is not needed, however, it is yet another option that can be used to boot the Variscite SOMs, for anyone who is interested.

Step by step usage instructions

Download and install the imx_usb_loader utility:

$ sudo apt-get install libusb-1.0-0-dev
$ cd ~
$ git clone https://github.com/boundarydevices/imx_usb_loader.git
$ cd imx_usb_loader
$ git reset --hard c598fd14d67
$ make


Build U-Boot:
Build U-Boot using the defconfig for SD card/eMMC.
You can follow the "Build U-Boot from source code" instructions here.
Copy the U-Boot image to the imx_usb_loader directory:

$ cp -v imx-boot-sd.bin ~/imx_usb_loader


Boot the board into serial download mode:
Set the board boot mode to SD card, while not having an actual card inserted in its slot.
Alternatively, set the board boot mode to eMMC/NAND flash, when the eMMC/NAND flash does not contain a bootloader.
Connect the board to your host PC via the USB OTG port, and power on the board.
The board should be recognized on the host as a "Freescale SemiConductor Inc SE Blank ARIK" (or something similar).

(Note: If your board only has a regular USB type-A connector and doesn't have a USB Micro-AB receptacle, you can use a "male USB type-A to male USB type-A" cable)

Run imx_usb to load U-Boot on the board:

$ sudo ./imx_usb imx-boot-sd.bin

The board should now run U-Boot.
You can see its output on the console via the debug port, as always.

Notes:

  • The default boot command when booting from USB is bootcmd_mfg. It can be defined in the board's default env.