NXP i.MX 8XLite Evaluation Kit (EVK)

estape.nt
Thu, 17 Aug 2023 17:12:43 +0000
Yocto Project

Board description

The i.MX 8XLite evaluation kit (EVK) provides a platform for evaluation and development using the Arm® Cortex® A35 + Cortex-M4F based i.MX 8XLite applications processors as well as the NXP PF7100 power management integrated circuit (PMIC) solution and sensors.

The i.MX 8XLite processor family is built with a high-level integration to support security, automotive telematics (V2X) and time-sensitive networking (TSN) while meeting efficient performance requirements. The EVK is supported with highly optimized drivers and software to enable broad-based applications for the embedded industrial and automotive markets.

References i.MX 8XLite EVK & i.MX 8XLite

NXP Support

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
langdale (4.1) | |

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

Set the Yocto Project branch you are building for:

# set to your branch, make sure it is supported (see table above)
export BRANCH="langdale"

Create a directory for your mender-nxp setup to live in and clone the
meta information.

mkdir mender-nxp && cd mender-nxp

Clone the NXP sources

repo init -u https://github.com/nxp-imx/imx-manifest.git \
          -b imx-linux-$BRANCH \
          -m imx-6.1.1-1.0.0.xml
repo sync -j$(nproc)

Fetch Mender layers:

cd sources
git clone https://github.com/mendersoftware/meta-mender.git \
         -b kirkstone
git clone https://github.com/estape11/meta-mender-community.git \
         -b langdale
cd ..

Setup build environment

Initialize the build environment:

MACHINE=imx8dxlb0-lpddr4-evk DISTRO=fsl-imx-wayland source ./imx-setup-release.sh -b build

Add langdale in the LAYERSERIES_COMPAT_mender:

vi ../sources/meta-mender/meta-mender-core/conf/layer.conf
vi ../sources/meta-mender/meta-mender-demo/conf/layer.conf

Add the Mender layer to the bblayers

bitbake-layers add-layer ../sources/meta-mender/meta-mender-core/
bitbake-layers add-layer ../sources/meta-mender/meta-mender-demo/
bitbake-layers add-layer ../sources/meta-mender-community/meta-mender-nxp

Apply the local.conf templates

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
cat ../sources/meta-mender-community/meta-mender-nxp/templates/local-sdcard.conf.append >> conf/local.conf

Configure Mender server URL (optional)

This section is not required for a successful build but images that are generated by default are only suitable for usage with the Mender client in Standalone deployments, due to lack of server configuration.

You can edit the conf/local.conf file to provide your Mender server configuration, ensuring the generated images and Mender Artifacts are connecting to the Mender server that you are using. There should already be a commented section in the generated conf/local.conf file and you can simply uncomment the relevant configuration options and assign appropriate values to them.

Build for Hosted Mender:

# To get your tenant token:
#    - log in to https://hosted.mender.io
#    - click your email at the top right and then "My organization"
#    - press the "COPY TO CLIPBOARD"
#    - assign content of clipboard to MENDER_TENANT_TOKEN
#
MENDER_SERVER_URL = "https://hosted.mender.io"
MENDER_TENANT_TOKEN = "<copy token here>"

Building the image

You can now proceed with building an image:

bitbake core-image-minimal

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

Using the build output

After a successful build, the resources should available in the result deploy folder (<build_dir>/tmp/deploy/images/imx8dxlb0-lpddr4-evk). Inside you will find the needed files such as the bootloader, kernel, rootfs and Mender artifact.

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 (upload it under Releases in the server UI) or by using the Mender client standalone mode .

Flash the SD card (predefined partitions)

dd if=core-image-minimal-imx8dxlb0-lpddr4-evk.sdimg | pv | dd of=/dev/<sd_dev>

Flash the bootloader

The device has to be in Download Mode and the USB connected from the OTG-2 to the PC

uuu -lsusb

With the card inserted in the device, flash using the uuu tool

uuu -b sd imx-boot-imx8dxlb0-lpddr4-evk-sd.bin-flash_linux_m4

Boot the board

After flashing:

1. Turn the board off

2. Change the BOOT-MODE jumpers to boot into the SD card

3. Connect the DEBUG cable (micro-usb) to the board

4. Open a serial program in the host computer (3rd serial device @ 115200 8N1 / Flow Control = NO)

5. Power on the board

6. Stop the uboot process (press a key) and reset the env:
env default -a
saveenv
reset

References

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

NXP official Yocto Guide

1 post - 1 participant