i.MX USB Loader

Showing results for 
Search instead for 
Did you mean: 

i.MX USB Loader

No ratings

i.MX USB Loader

Boundary Devices has a tool to load directly a U-boot binary file, all using the USB OTG port. Assuming that you have connected your i.MX board to your Linux Host through an USB cable, board is power-on  with dip switches configure to 'Serial Download Mode' (this configuration depends on the board you are booting),  clone the imx_usb_loader repo, generate the tool then boot as indicate below:

$ git clone https://github.com/boundarydevices/imx_usb_loader.git

$ cd imx_usb_loader

$ make

$ ./imx_usb  ../tmp/deploy/images/u-boot.imx

On the console terminal, you should see the booting kernel logs and at the end reaching the login prompt.

Useful Links:

[1] Unbricking a Nitrogen6X or Sabre Lite i.MX6 board

[2] Boundary Devices Repos

[3] Boundary Devices Main page

Labels (1)

Thanks LeonardoSandovalGonzalez

I can see the u-boot working after being downloaded to RAM by the USB loader tool. The question is, what's next? I mean, what else is to be done to flash my u-boot, kernel, filesystem and device tree to my flash chip?

I ask because when using the mfgtool in windows I saw that there is a .xml file with a series of instructions for the mfgtool to execute that tells how to create the necessary partitions and how to write the u-boot, kernel, filesystem and devicetree into the flash. Is there something equivalent for linux?


Hi # Leonardo Sandoval Gonzalez,


This is regarding imx6q based custom hardware design.


I’m using>>. /imx_usb u-boot.imx command to burn spi flash of fresh hardware via usb loader. (I mean this custom boards didn’t burn any uboot in spi flash previously and they are fresh)


To accselorate this process I need to burn flash of multiple boards using one PC. Is there any method to do this using usb loader? Or else any other method to burn uboot for multiple boards using one pc?





Someone just added support to imx_usb to target a specific bus id and/or device number:



Hi,@Gary Bisson

Many thanks and according to that patch;

How to give the command to get correct device and bus with following ?

/imx_usb_loader# ./imx_usb u-boot.imx
-b --bus=NUM
-D --device=NUM

  1. If I want to u-boot only one device is this command correct ?
    root@osboxes:/home/osboxes/vkm_dir/imx_usb_loader# ./imx_usb -b --bus=1 -D --device=47 u-boot.imx

  2. If I want to flash u-boot for multiple devices(spi flashes) in one pc. So is it possible to do with this new configurations ?

Kulunu (Peter)@

Hi Peter,

First, please don't cross-post your questions on several sites (github/boundary blog/community), that's impossible to track and counterproductive.

Then, regarding the options, as most of the Linux tools, you have to chose between one format or the other. It's either '-b X' or '--bus=X' but not both.

So please try with:

./imx_usb -b 1 -D 47 u-boot.imx




I cloned source code from github and make it, but I got an error show as below.

realpath: invalid option -- 'm'
 realpath [-s|--strip] [-z|--zero] filename ...
 realpath -h|--help
 realpath -v|--version

I found it seems caused by the command in the makefile and it seems there is no -m option support by realpath.

rel_sysconfdir = $(shell realpath -m --relative-to=$(bindir) $(sysconfdir))

How can I solve this problem?

Thank you.



Version history
Last update:
‎02-22-2013 10:13 AM
Updated by: