Technexion PICO-IMX7D SOM

Board description

The Technexion PICO-IMX7D is a system-on-module containing a large peripheral set usable for many designs.

The i.MX 7Dual delivers high-performance processing for low-power requirements with a high degree of functional integration. The i.MX 7Dual features an advanced implementation of two ARM®Cortex®-A7 cores, which operate at speeds of up to 1.2 GHz, as well as the ARM® Cortex®-M4 core. The Pico variant is pin-compatible with the Intel® Edison for sensors and low-speed I/O, but also adds additional expansion possibilities for multimedia and connectivity, giving you cutting edge technology that can easily be expanded and implemented for IoT designs.

This integration has been tested with the PICO PI carrier board.

PICO-IMX7D SOM

URL:https://shop.technexion.com/system-on-modules/pico/pico-modules/pico-imx7d-10-r10-e08-9377.html

Note that this integration is similar to this one, however the board form-factor is different and this uses the Rocko branch of the Technexion BSP rather than the manifest files provided as part of Mender Hub.

Test results

The Yocto Project releases in the table below have been tested by the Mender community. Please update it if you have tested this integration on other Yocto Project releases:

Yocto Project Build Runtime
rocko (2.4) :test_works: :test_works:

Build Means that the Yocto Project build using this Mender integration completes without errors and outputs images.

Runtime Means that Mender has been verified to work on the board. For U-Boot-based boards, the integration checklist has been verified.

Getting started

Prerequisites

  • A supported Linux distribution and dependencies installed on your workstation/laptop as described in the Yocto Mega Manual

  • NOTE. Instructions depend on which Yocto version you intend to use.

  • Google repo tool installed and in your PATH.

Configuring the build

Setup Yocto environment

Create a directory for your mender-technexion setup to live in and clone the

meta information.

mkdir mender-technexion && cd mender-technexion

Initialize repo manifest:

repo init -u https://github.com/TechNexion/edm-yocto-bsp.git -b rocko_4.9.y_GA -m imx-4.9.88-2.0.0_ga.xml
mkdir .repo/local_manifests
cd .repo/local_manifests/
wget https://raw.githubusercontent.com/mendersoftware/meta-mender-community/rocko/scripts/mender-no-setup.xml
cd -

Fetch layers in manifest:

repo sync
cd .repo/local_manifests/
ln -sf ../../sources/meta-mender-community/scripts/mender-no-setup.xml .
cd -

Download the wifi firmware

The wifi firmware is not yet in the upstream repos so we need to manually download it and store it in the meta-edm-bsp-release subdirectory.

wget ftp://download.technexion.net/development_resources/Download/wifi_firmware/Broadcom/AP6335_4.2.tgz
tar xzvf AP6335_4.2.tgz
mv AP6335_4.2/*/* sources/meta-edm-bsp-release/recipes-kernel/linux-firmware/files/
rm -rf AP6335_4.2/ AP6335_4.2.tgz

wget ftp://download.technexion.net/development_resources/Download/wifi_firmware/Broadcom/AP6212_4.2.tgz
tar xzvf AP6212_4.2.tgz
mv AP6212_4.2/*/* sources/meta-edm-bsp-release/recipes-kernel/linux-firmware/files/
rm -rf AP6212_4.2/ AP6212_4.2.tgz

Setup build environment

Initialize the build environment:

WIFI_FIRMWARE=y WIFI_MODULE=brcm DISTRO=fsl-imx-fb MACHINE=pico-imx7 BASEBOARD=pi source edm-setup-release.sh
cat ../sources/meta-mender-community/meta-mender-nxp/templates/bblayers.conf.append >> conf/bblayers.conf
cat ../sources/meta-mender-community/templates/local.conf.append >> conf/local.conf
cat ../sources/meta-mender-community/meta-mender-nxp/templates/local.conf.append >> conf/local.conf

Building the image

You can now proceed with building an image:

MACHINE=pico-imx7 bitbake core-image-base

Replace core-image-base with your desired image target.

Using the build output

After a successful build, the images and build artifacts are placed in tmp/deploy/images/pico-imx7/.

  • tmp/deploy/images/pico-imx7/core-image-base-pico-imx7.sdimg

  • tmp/deploy/images/pico-imx7/core-image-base-pico-imx7.mender

The disk image (with .sdimg suffix) is used to provision the device storage for devices without Mender running already. Please proceed to the official documentation on provisioning a new device for steps to do this.

On the other hand, if you already have Mender running on your device and want to deploy a rootfs update using this build, you should use the Mender Artifact files, which have .mender suffix. You can either deploy this Artifact in managed mode with the Mender server as described in Deploy to physical devices or by using the Mender client only in Standalone deployments.

Flash instructions

Initial device provisioning uses the imx_usb utility to present the targets eMMC device as a block device to your build PC. You will need to configure your carrier board for serial download, and then invoke the imx_usb utility as follows:

sudo ./linux/imx_usb pico-imx7d_bootbomb_20170112.imx

At this point a new block device will be present in your system and you can follow the standard Mender instructions for provisioning the SDIMG.

References

  • The official Mender documentation explains how Mender works. This is simply a board-specific complement to the official documentation.

If this post was useful to you, please press like, or leave a thank you note to the contributor who put valuable time into this and made it available to you. It will be much appreciated!