Quick and dirty setup of an i.MX evaluation board to program an i.MX board thru USB

Showing results for 
Search instead for 
Did you mean: 

Quick and dirty setup of an i.MX evaluation board to program an i.MX board thru USB

Quick and dirty setup of an i.MX evaluation board to program an i.MX board thru USB

i.MX evaluation board can be a simple solution to program i.MX boards in a factory for instance.

i.MX evaluation board are not for industrial usage, but you can find plenty of cheap i.MX insdustrial boards on the web.

Here I am using an i.MX8QXP rev B0 MEK board and I will program an i.MX6Q SABRE SD board.

The first step is to generate your image. Follow the documentation steps to generate the "validation" image.

You will have to customize a little bit the local.conf file (in conf/local.conf) to have git, cmake, gcc and other missing package.

edit local.conf and add the following lines at the end of the file:

IMAGE_INSTALL_append = " git cmake htop packagegroup-core-buildessential xz p7zip rsync"‍‍‍‍

I have added rsync package in local, it can replace cp (copy) but with the --progress option you can see the copy progression. P7zip replace unzip for our images archives avaialable on nxp.com as unzip as issues with big files.

then rebake your image:

bitbake -k fsl-image-validation-imx‍‍‍‍

When it is done, go in tmp/deploy/image/<your image generated> and use uuu to program your board (I use a sd card; thus I can increase the partition esily):

sudo ./uuu -b sd_all imx-boot-imx8qxpmek-sd.bin-flash fsl-image-validation-imx-imx8qxpmek.sdcard.bz2/*‍‍‍‍

As the rootfs can be too small, use gparted under Linux for instance to increase the size of the partition.

Put the SD card and start your board.

Here here the dirty part...

You may know archlinux|ARM websitesite (Arch Linux ARM ), you have a lots of precompiled packages. Thus on the board you can download it, and copy the file in /usr folder (you can use it to have the latest openSSL for  instance!).

Plug an ethernet cable on the board and check if it is up:

ifconfig -a
ifconfig eth0 up‍‍‍‍‍‍‍‍

Now you should have access to the internet.

On uuu webpage you can find all the packages you need (here I am using a 4.14.98_2.0.0 Linux):

mkdir missinglibs
cd missinglibs
wget http://mirror.archlinuxarm.org/aarch64/core/bzip2-1.0.8-2-aarch64.pkg.tar.xz
wget http://mirror.archlinuxarm.org/aarch64/core/nettle-3.5.1-1-aarch64.pkg.tar.xz
wget http://mirror.archlinuxarm.org/aarch64/core/libusb-1.0.22-1-aarch64.pkg.tar.xz
wget http://mirror.archlinuxarm.org/aarch64/extra/libzip-1.5.2-2-aarch64.pkg.tar.xz
wget http://mirror.archlinuxarm.org/aarch64/core/zlib-1:1.2.11-3-aarch64.pkg.tar.xz
wget http://mirror.archlinuxarm.org/aarch64/extra/p7zip-16.02-5-aarch64.pkg.tar.xz
cd ..‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Wait all the archives are downloaded (otherwise you'll decompress before the archive is downloaded) as wget is running in background!

Now untar the archives and copy it in the rootfs (dirty):

tar -xJf libzip-1.5.2-2-aarch64.pkg.tar.xz
tar -xJf libusb-1.0.22-1-aarch64.pkg.tar.xz
tar -xJf nettle-3.5.1-1-aarch64.pkg.tar.xz
tar -xJf bzip2-1.0.8-2-aarch64.pkg.tar.xz
cp zlib-1:1.2.11-3-aarch64.pkg.tar.xz zlib
tar -xJf zlib
tar -xJf p7zip-16.02-5-aarch64.pkg.tar.xz
cd usr
sudo cp -R . /usr
cd ../../

Download and compile uuu:

git clone git://github.com/NXPmicro/mfgtools.git
cd mfgtools/
cmake .

Download an image on nxp.com for instance.

I have downloaded on the i.MX6 4.14.98_2.0.0 image and put it on a usb key.

then unzip it in the uuu folder:

7z e L4.14.98_2.0.0_ga_images_MX6QPDLSOLOX.zip‍‍‍

As mentionned before unzip cannot hadle big files... so use 7z as me

plug the i.MX6Q SABRE SD to the i.MX8X and program your i.MX6 board:

./uuu uuu.auto-imx6qsabresd‍
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.3.74-0-g64eeca1

Success 1 Failure 0 ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


Version history
Revision #:
2 of 2
Last update:
‎09-10-2020 03:04 AM
Updated by: