This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

NXP i.MX8MM EVK (Cortex-A53)

Overview

i.MX8M Mini LPDDR4 EVK board is based on NXP i.MX8M Mini applications processor, composed of a quad Cortex®-A53 cluster and a single Cortex®-M4 core. Zephyr OS is ported to run on the Cortex®-A53 core.

  • Board features:

    • RAM: 2GB LPDDR4

    • Storage:

      • SanDisk 16GB eMMC5.1

      • Micron 32MB QSPI NOR

      • microSD Socket

    • Wireless:

      • WiFi: 2.4/5GHz IEEE 802.11b/g/n

      • Bluetooth: v4.1

    • USB:

      • OTG - 2x type C

    • Ethernet

    • PCI-E M.2

    • Connectors:

      • 40-Pin Dual Row Header

    • LEDs:

      • 1x Power status LED

      • 1x UART LED

    • Debug

      • JTAG 20-pin connector

      • MicroUSB for UART debug, two COM ports for A53 and M4

More information about the board can be found at the NXP website.

Supported Features

The Zephyr imx8mm_evk board configuration supports the following hardware features:

Interface

Controller

Driver/Component

GIC-v3

on-chip

interrupt controller

ARM TIMER

on-chip

system clock

UART

on-chip

serial port

Devices

System Clock

This board configuration uses a system clock frequency of 8 MHz.

Serial Port

This board configuration uses a single serial communication channel with the CPU’s UART2.

Programming and Debugging

Use U-Boot to load and kick zephyr.bin:

dhcp 0x93c00000 zephyr.bin; dcache flush; icache flush; dcache off;
icache off; bootelf 0x93c00000

Use this configuration to run basic Zephyr applications and kernel tests, for example, with the Synchronization Sample:

# From the root of the zephyr repository
west build -b imx8mm_evk samples/synchronization
west build -t run

This will build an image with the synchronization sample app, boot it and display the following ram console output:

   ## Starting application at 0x40000788 ...
*** Booting Zephyr OS build zephyr-v2.5.0-523-ge61ec4f277bf  ***
thread_a: Hello World from cpu 0 on imx8mm_evk!
thread_b: Hello World from cpu 0 on imx8mm_evk!
thread_a: Hello World from cpu 0 on imx8mm_evk!
thread_b: Hello World from cpu 0 on imx8mm_evk!
thread_a: Hello World from cpu 0 on imx8mm_evk!

Use Jailhouse hypervisor, after root cell linux is up:

#jailhouse enable imx8mm.cell
#jailhouse cell create imx8mm-zephyr.cell
#jailhouse cell load 1 zephyr.bin -a 0x93c00000
#jailhouse cell start 1

References