The imx7d-pico board is now supported in Buildroot

1 minute read

The imx7d-pico is a TechNexion board defined here. It is now supported by Buildroot in the next branch.

The commits related to this support are listed below:

How to update the software

Building U-Boot

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

This will generate the binary u-boot.imx.

Building Buildroot image

$ make clean
$ make imx7dpico_defconfig
$ make

This will generate imx7d-pico.dtb, rootfs.ext4, rootfs.tar, sdcard.img, u-boot.imx and zImage.


  • 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.

  • Using imx_usb_loader, load u-boot.imx.

$ sudo ./imx_usb u-boot.imx
  • In the board console, mount the eMMC using the UMS utility.
# ums 0 mmc 0
  • Flash the image generated by Buildroot. This command flashes the complete image, including U-Boot and Kernel.
$ sudo dd if=sdcard.img of=/dev/sdX
  • Turn off the board. Put the board into internal boot mode and turn on the board. The Buildroot image will boot.

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 whole image.

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

$ sudo dd if=u-boot.imx of=/dev/sdX bs=1K seek=1

To update imx7d-pico.dtb and zImage, 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>