The imx7d-pico board is now supported in FSL Community BSP

2 minute read

The imx7d-pico is a TechNexion board defined here. It is now supported in meta-freescale-3rdparty in the master branch.

The commits related to this support are listed below:

How to update the software

Downloading the source code

Install the repo utility:

$ mkdir ~/bin
$ curl > ~/bin/repo
$ chmod a+x ~/bin/repo

Download the source code:

$ PATH=${PATH}:~/bin
$ mkdir fsl-community-bsp
$ cd fsl-community-bsp
$ repo init -u -b master
$ repo sync

Building the image

$ MACHINE=imx7d-pico DISTRO=fslc-framebuffer source setup-environment build

Run bitbake with the preferred image, for example:

$ bitbake core-image-base

Updating the image

Put the pico board into serial download mode. Please refer to this document at page 3. Turn on the board and connect the USB debug cable to the computer.

The files generated by bitbake are located in <fsl-community-bsp-dir>/build/tmp/deploy/images/imx7d-pico.

Using imx_usb_loader, load SPL and u-boot.img.

$ sudo ./imx_usb SPL
$ sudo ./imx_usb u-boot.img

In the board console, mount the eMMC using the UMS utility.

# ums 0 mmc 0

Bitbake generates the compressed image, including U-Boot, Kernel and rootfs. Unpack and load this image by running the following:

$ gunzip -f <generated_image>.wic.gz
$ sudo dd if=<extracted_image>.wic of=/dev/sdX

Turn off the board. Put the board into internal boot mode and turn on the board. The board will boot with the new image.

Updating U-Boot and Kernel

In cases that is needed to change the U-Boot or Kernel binaries, this can be done without changing the complete image.

To build U-Boot (last stable version v2017.09), run the following:

$ export ARCH=arm
$ export CROSS_COMPILE=arm-xxxx
$ make mrproper
$ make pico-imx7d_defconfig
$ make

This generates the binaries SPL and u-boot.img.

To update U-Boot put the board into serial download mode and run imx_usb. Run the following command to flash the new image to the eMMC.

$ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 && sync
$ sudo dd if=u-boot.img of=/dev/sdX bs=1K seek=69 && sync

In case that the boot partition is read-only, please see this post.

To update imx7d-pico.dtb and zImage, clone this (last stable version 4.13.4) repository and then run the following commands to generate the new binaries.

$ export ARCH=arm
$ export CROSS_COMPILE=arm-xxxx
$ make mrproper
$ make imx_v6_v7_defconfig
$ make -jN (where N is the number of cores of your host PC)

This will generate imx7d-pico.dtb and zImage. Then, run UMS utility in U-Boot and copy these files to the boot partition of the eMMC.

$ cp imx7d-pico.dtb <path_to_boot_partition>
$ cp zImage <path_to_boot_partition>