Getting Started with the i.MX 8M Plus EVK | NXP Semiconductors

Getting Started with the i.MX 8M Plus EVK

Last Modified: 2021-02-10 13:28:00Supports i.MX 8M Plus Evaluation Kit

1. Out of the Box

The following section describes the steps to boot the i.MX 8M Plus EVK.

Development kit contains:

  • i.MX 8M Plus EVK board
  • Power Supply: USB Type C 45W Power Delivery Supply, 5 V/3 A; 9 V/3 A; 15 V/3 A; 20 V/2.25 A supported
  • Cable: Assembly, USB 3.0, Type-C Male to Type-A Male
  • Cable: Assembly, USB 2.0, Type-A Male to Micro-B Male
  • Adapter: USB 3.0, Type-C Male to Type-A Female
  • Software: Linux BSP image Programmed in eMMC
  • Quick Start Guide

Get started developing your application on the i.MX 8M Plus EVK with the out-of-the-box video. For more information please visit the i.MX 8M Plus applications processor documentation.

1.1 Get Familiar With the Board

i.MX-8M-Plus EVK-TOP

i.MX-8M-Plus EVK-TOP

i.MX-8M-Plus-EVK-Underside

i.MX-8M-Plus-EVK-Underside

1.2 Boot From eMMC

The i.MX 8M Plus EVK comes with a pre-built NXP Linux binary demo image flashed on the eMMC. Without modifying the binary inside, booting from the eMMC provides a default system with certain features for building other applications on top of Linux.

To understand more about NXP’s Embedded Linux®, Embedded Android™ or MCUXpresso SDK, continue reading the next sections.

1.3 Connect USB Debug Cable

Connect the supplied micro-B USB cable to the debug UART port J23, then connect the other end of the cable to a host computer.

Four UART connections will appear on the host computer. The third port is for A53 core and the fourth port is for M7 core system debugging.

If you are unfamiliar with terminal applications, please view one of the following tutorials before continuing to step 1.4. Minicom Tutorial, Tera Term Tutorial, PuTTY Tutorial.

1.4 Connect the HDMI Cable

To see the user interface provided with the image binary, connect a monitor via the HDMI connector (J17).

1.5 Boot Switch Setup

The boot sequence is detailed in the i.MX 8M Plus Reference Manual . In short, the boot modes of the i.MX boards are controlled by the boot configuration switches.

The switches set the boot media (depending on board, i.e. SD card, eMMC, NAND), the serial download protocol mode (SDP) or the value set on eFuses.

The SDP is also the fallback for the boot media, in other words, when the switches are configured to boot from SD card but the SD card slot is empty, or the SD card binary content is not bootable, the boot sequence continues to the SDP boot.

The following table lists the boot switch settings on the i.MX 8M Plus EVK board. The same information can be found on i.MX 8M Plus Reference Manual and on silkscreen on the board near the switches.

Boot Media SW1101 [D1-D4]
Boot from Fuse 0000
Serial Download 0001
eMMC/SDHC3 0010
MicroSD/SDHC2 0011
NAND 256 Page 0100
NAND 512 Page 0101
QSPI 3B Read 0110
ECSPI Flash 1000
Infinite Loop 1110

1.6 Connect Power Supply

Connect the power supply cable to the power connector (PORT0).

Power the board by flipping the switch (SW3).

The processor starts executing from the on-chip ROM code. With the default boot switch setup, the code reads the fuses to define the media where it is expected to have a bootable image. After it finds a bootable image, the U-Boot execution should begin automatically.

Information is printed in the serial console for the Cortex® A53. If you do not stop the U-Boot process, it continues to boot the kernel.

Congratulations, Linux Boots

As the board boots up, you will see 4 penguins appear in the upper left-hand corner of the monitor, and then you will see the Linux terminal icon on the top left and timer on right top corner. Congratulations, you are up and running.

2. Embedded Linux®

This section is applicable ONLY if attempting to load a Linux operating system on the board.

The i.MX Linux Board Support Package (BSP) is a collection of binary files, source code and support files that are used to boot an Embedded Linux image on a specific i.MX development platform.

Current releases of Linux binary demo files can be found on the i.MX Linux download page. Additional documentation is available in the i.MX Linux documentation bundle under the Linux sections of the i.MX Software and Development Tools.

2.1 Overview

Before the Linux OS kernel can boot on an i.MX board, the Linux kernel is loaded to a boot device (SD card, eMMC and so on) and the boot switches are set to boot that device.

There are various ways to download the Linux BSP image for different boards and boot devices.

This Getting Started guide only outlines a few methods of transferring the Linux BSP to an SD card. Experienced Linux developers can explore other options if desired.

2.2 Download an NXP Linux BSP Pre-Built Image

The latest pre-built images for the i.MX 8M Plus EVK are available on the Linux download page under the most current version on Linux.

The pre-built NXP Linux binary demo image provides a typical system and basic set of features for using and evaluating the processor. Without modifying the system, the users can evaluate hardware interfaces, test SoC features and run user space applications.

When more flexibility is desired, an SD card can be loaded with individual components (boot loader, kernel, dtb file and rootfs file) one-by-one or the *wic image is loaded and the individual parts are overwritten with the specific components.

2.3 Burn NXP Linux BSP Image Using Universal Update Utility (UUU)

In addition to the connections from "Out of the Box" section, connect the PORT1 to the host machine using the proper USB cable.

Turn off the board. Consult the "1.5 Boot Switch Setup" section and configure the board to boot on serial download protocol (SDP) mode.

Depending on the OS used in the host machine, the way to transfer the Linux BSP image onto an SD card can vary. Choose an option below for detailed instructions:

3. Embedded Android®

This section describes the boot process of loading the i.MX 8M Plus EVK board with an Embedded Android system image and introduces how to build the software components that create your own system image. For details on building the Android platform, see this Android building guide .

The current release includes demo images, source code and documentation. These can also be found in Android OS for i.MX Applications Processor.

3.1 Overview

The storage devices on the development system (MMC/SD or NAND) must be programmed with the i.MX bootloader. The boot process determines which storage device to access based on the switch settings. When the boot loader is loaded and begins execution, the U-Boot environment space is then read to determine how to proceed with the boot process.

The images can come from pre-built release packages or be created from source code. Regardless of how you obtain them, all Android images contain the following components:

  • U-Boot image: u-boot.imx
  • Boot image: boot.img
  • Android system root image: system.img
  • Recovery root image: recovery.img

For more information about the Android BSP, refer to the Android user guide.

3.2 Download NXP Android BSP Image

The pre-built NXP Android demo image provides a default system with certain features for evaluation. Without modifying the system, users can perform some basic operations and interact with the system to test hardware interfaces and develop software application in the user space.

The pre-built images from the package are categorized by boot device and put in the directory with the device name. The latest pre-built image files can be found in Android section on the i.MX Software and Development Tools or on the demo images downloader link.

3.3 Burn NXP Android BSP Image Using UUU

In addition to the connections from Out of box chapter, connect the TYPE-C Port1 USB 3.0 to the host machine using the proper USB cable.

Turn off the board.

Consult the boot switch setup and configure the board to boot on SDP (serial download protocol) mode.

Depending on the OS used in the host machine, the way to transfer the Android BSP image onto an SD card can vary.

3.4 Boot Switch Setup

The boot sequence is detailed in the i.MX 8M Plus Quick Start Guide. In short, the boot modes of the i.MX boards are controlled by the boot configuration switches.

The switches set the boot media (depending on board, i.e. SD card, eMMC, NAND), the serial download protocol mode (SDP) or the value set on eFuses.

The SDP is also the fallback for the boot media, in other words, when the switches are configured to boot from SD card but the SD card slot is empty or the SD card binary content is not bootable, the boot sequence continues to the SDP boot.

i.MX 8M Plus EVK Boot Switch Setup

i.MX 8M Plus EVK Boot Switch Setup

The following table lists the boot switch settings on the i.MX 8M EVK board. The same information can be found on i.MX 8M Plus Quick Start Guide and on silkscreen on the board near the switches.

Boot Device SW4-1 SW4-2 SW4-3 SW4-4
Boot From Fuses 0 0 0 0
USB Serial Download Mode 0 0 0 1
USDHC3 (eMMC boot only, SD3 8-bit) Default 0 0 1 0
USDHC2 (SD boot only, SD2) 0 0 1 1
NAND 8-bit single device 256 page 0 1 0 0
NAND 8-bit single device 512 page 0 1 0 1
QSPI 3B Read 0 1 1 0
QSPI Hyperflash 3.3V 0 1 1 1
ecSPI Boot 1 0 0 0

4. MCUXpresso SDK

The MCUXpresso software development kit (MCUXpresso SDK) provides comprehensive software source code to be executed in the i.MX 8M Plus M7 core. If you do not wish to enable the Cortex-M7 on i.MX 8M Plus at this moment you can skip this section.

4.1 Overview

The MCUXpresso SDK is designed for the development of embedded applications for Cortex®-M7 standalone or collaborative use with the A cores. Along with the peripheral drivers, the MCUXpresso SDK provides an extensive and rich set of example applications covering everything from basic peripheral use case examples to demo applications. The MCUXpresso SDK also contains RTOS kernels and device stack and various other middleware to support rapid development.

This guide shows how to run the hello_world.bin demo provided by the REL_2.9.0 release. For detailed information on MCUXpresso SDK and how to build and deploy custom demos, please see the MCUXpresso SDK site.

4.2 Run Applications Using U-Boot

This section describes how to run applications using an SD card and pre-built U-Boot image for i.MX processor.

  1. Following the steps from section 2. Embedded Linux, prepare an SD card with a pre-built U-Boot + Linux image from the Linux BSP package for the i.MX 8M Plus processor. If you have already loaded the SD card with a Linux image, you can skip this step
  2. Insert the SD card in the host computer (Linux or Windows) and copy the application image (for example hello_world.bin) to the FAT partition of the SD card.
  3. Safely remove the SD card from the PC
  4. Insert the SD card to the target board. Make sure to use the default boot SD slot and double check the Boot Switch callout boot switch setup guide
  5. Connect the DEBUG UART connector on the board to the PC through a USB cable. The Windows OS installs the USB driver automatically, and the Ubuntu OS will find the serial devices as well. See Connect USB debug cable section for more instructions on serial communication applications. Open a second terminal on the i.MX8M Plus EVK board's second enumerated serial port.
  6. This is the Cortex-M7's serial console. Set the speed to 115200 bit/s, data bits 8, 1 stop bit (115200, 8N1), no parity
  7. Power up the board and stop the boot process by pressing any key before the U-Boot countdown reaches zero. At the U-Boot prompt on the first terminal, type the following commands.
    1=> fatload mmc 0:1 0x48000000 hello_world.bin => cp.b 0x48000000 0x7e0000 0x20000 => bootaux 0x7e0000
    These commands copy the image file from the first partition of the SD card into the Cortex-M7's TCM and releases the Cortex-M7 from reset.

4.3 Boot Switch Setup

The boot sequence is detailed in the i.MX 8M Plus Quick Start Guide. In short, the boot modes of the i.MX boards are controlled by the boot configuration switches.

The switches set the boot media (depending on board, i.e. SD card, eMMC, NAND), the serial download protocol mode (SDP) or the value set on eFuses.

The SDP is also the fallback for the boot media, in other words, when the switches are configured to boot from SD card but the SD card slot is empty or the SD card binary content is not bootable, the boot sequence continues to the SDP boot.

i.MX 8M Plus EVK Boot Switch Setup

i.MX 8M Plus EVK Boot Switch Setup

The following table lists the boot switch settings on the i.MX 8M EVK board. The same information can be found on i.MX 8M Plus Quick Start Guide and on silkscreen on the board near the switches.

Boot Device SW4-1 SW4-2 SW4-3 SW4-4
Boot From Fuses 0 0 0 0
USB Serial Download Mode 0 0 0 1
USDHC3 (eMMC boot only, SD3 8-bit) Default 0 0 1 0
USDHC2 (SD boot only, SD2) 0 0 1 1
NAND 8-bit single device 256 page 0 1 0 0
NAND 8-bit single device 512 page 0 1 0 1
QSPI 3B Read 0 1 1 0
QSPI Hyperflash 3.3V 0 1 1 1
ecSPI Boot 1 0 0 0

Security and Integrity

Documents and Videos Description
AN12714 i.MX Encrypted Storage Using CAAM Secure Keys This application note provides the steps to run a transparent storage encryption at block level using DM-Crypt, taking advantage of the secure key feature provided by i.MX's Cryptographic Accelerator and Assurance Module (CAAM).
AN12838 Strengthening Public Key Cryptography using CAAM Secure Key This application note describes the public key cryptography scheme based on the Black Key feature provided by i.MX application processors.
AN12632 Enhanced OpenSSL on i.MX 8M and i.MX 8MM This application note describes how to add support for accelerated OP-TEE OS with Cryptographic Accelerator and Assurance Module (CAAM) on top of OpenSSL. The final result being an enhanced OpenSSL capable of accelerating crypto algorithms in a secure way via OP-TEE.
Trusted Execution Environment: Getting Started with OP-TEE on i.MX Processors An overview of TEE, example use cases and how to leverage i.MX hardware security features from OP-TEE.
Secure the Edge: Manufacturing Protection: Provision Sensitive Material in an Unsecure Environment This webinar will provide an introduction to the manufacturing protection feature and discuss how it can be used to ensure that sensitive material is delivered and installed securely.
AN4581 i.MX Secure Boot on HABv4 Supported Devices
AN12812 Using Code-Signing Tool with Hardware Security Module This document provides the information necessary for the user to effectively use code-signing tool (CST) with a hardware security module (HSM) backend.
i.MX Security Features and Collateral A collection of documentation and community posts focused on various security aspects of the i.MX applications processors.

CAAM Module Example

The i.MX 8M Plus EVK board includes the Cryptographic Acceleration and Assurance Module (CAAM) module that can be used through CryptoDev in order to accelerate by hardware the encryption and decryption process. It is recommended to use this module when working with large amounts of data or in any application where performance is important.

Checking the Speed Performance

  1. OpenSSL is an open source project that defines the security protocols SSL (Secure Sockets Layer) and TLS (Transport Layer Security). It has a software library that can be used in applications that requires a secure information transmission in order to prevent eavesdropping
  2. OpenSSL includes a speed command that tests the encryption performance for a desired encryption algorithm. For this example, the algorithm used is the aes-128-cbc that implements the Advanced Encryption Standard (AES) encryption algorithm, with a cipher block chaining (CBC) mode of operation and 128-bit block

The OpenSSL speed test can be seen using the following command:

12345678910111213 # openssl speed -evp aes-128-cbc
  Doing aes-128-cbc for 3s on 16 size blocks: 43389139 aes-128-cbc's in 2.99s
  Doing aes-128-cbc for 3s on 64 size blocks: 28788614 aes-128-cbc's in 3.00s
  Doing aes-128-cbc for 3s on 256 size blocks: 11766741 aes-128-cbc's in 2.99s
  Doing aes-128-cbc for 3s on 1024 size blocks: 3674139 aes-128-cbc's in 2.99s
  Doing aes-128-cbc for 3s on 8192 size blocks: 495157 aes-128-cbc's in 3.00s
  OpenSSL 1.0.2p 14 Aug 2018
  built on: reproducible build, date unspecified
  options:bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(ptr)
  compiler: arm-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 -DL_ENDIAN -DTERMIO -O2 -pipe -g -feliminate-unused-debug-types -Wall -Wa,--noexecstack -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS
  The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
  Aes-128-cbc 193627.86k 513839.78k 837089.96k 1048974.64k 1130986.42k
  

Solution:

In doc “AN12838 Strengthening Public Key Cryptography using CAAM Secure Key” section 5.2.1 and 5.2.2. it describes details of the usage.

Wired Communications

Wired Communications

Documents and Videos Description
AN12409 i.MX6/7/8 series USB Certification Guide The purpose of this document is to describe how to perform USB Certification Test on the i.MX6/7/8 series family of applications processor including procedure descriptions, tools and criteria for USB Compliance Test.
AN13164 i.MX8MP PCIe Bandwidth Analysis This document presents various usage scenarios for PCIe on the i.MX 8M Plus to provide a more clear understanding of the cases where near Gen3 x1 line rate bandwidth (8 Gbits/s) can be achieved after protocol overhead.
AN13210 How to Use FlexCAN in Linux i.MX8MP presents two FlexCAN FD interfaces which can be programmed from Realtime domain or Linux domain. This document presents various usage scenarios for FlexCAN on the i.MX 8M Plus to provide a clearer understanding of how FlexCAN to be used in Linux.

With Linux running on the i.MX board, you can evaluate special features that i.MX SoCs provide. This tutorial shows the step-by-step instructions on how to connect to the Internet on Linux with i.MX 8M Plus EVK:

  1. Connect an Ethernet cable to the board RJ-45 connector
  2. Boot up the board and wait for the Linux prompt
  3. At the Linux prompt, enter the following command

    1# ifconfig eth0
  4. Ping any site to corroborate functionality
12345 # ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
  64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=4.81 ms 64 bytes 
  from 8.8.8.8: icmp_seq=2 ttl=119 time=4.87 ms 64 bytes 
  from 8.8.8.8: icmp_seq=3 ttl=119 time=4.94 ms 64 bytes 
  from 8.8.8.8: icmp_seq=4 ttl=119 time=4.61 ms 

Wireless Connectivity

Wireless Connectivity

Documents and Videos Description
Cloud Connectivity Integrated support for cloud services including Amazon Web Services, Microsoft Azure and Google Cloud IoT.
Getting Started with NXP-Based Wi-Fi Modules on i.MX 8M Quad EVK Running Linux OS This manual covers the bring-up of i.MX 8M Quad EVK, configurations for the BSP image, hardware connection with NXP-based wireless modules and how to bring up the Wi-Fi and Bluetooth.
Feature Configuration Guide for NXP-Based Wireless Modules on i.MX 8M Quad EVK This document specifies the Wi-Fi and Bluetooth® features and configurations on i.MX 8M Quad EVK with Azurewave AW-CM358MA (88W8987) and Azurewave AW-CM276MA (88W8997) wireless modules. It covers the initialization and configuration of the Wi-Fi and Bluetooth interfaces.

Power Management

The PCA9450 is the NXP Power Management IC optimized for i.MX 8M Plus.

Documents and Videos Description
AN13054 i.MX 8M Plus Power Consumption Measurement This application note illustrates the current drain measurements of the i.MX 8M Plus application processors taken on the NXP EVK platform through several use cases.

Low-Power Mode Suspension Example

With Linux running on the i.MX board, you can evaluate special features that i.MX SoCs provide. This example shows how to suspend to low-power modes and resume normal operation.

  • Enter the command below in order to enable serial TTY as a wake-up source for the board:
    1# echo enabled > /sys/class/tty/ttymxc0/power/wakeup
  • Enter the command below to enter Suspend-To-RAM mode:
    1# echo enabled > /sys/class/tty/ttymxc0/power/wakeup

Enter the command below to enter Suspend-To-RAM mode:

12345678# echo mem > /sys/power/state
PM: suspend entry (deep)
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.001 seconds) done.
OOM killer disabled.
Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done.
Suspending console(s) (use no_console_suspend to debug)

Press the SW01 switch to wake-up the board. The following messages should appear on terminal:

12345678910111213141516171819202122232425262728293031 HIFsuspendwow TODO
PM: suspend devices took 0.112 seconds
Disabling non-boot CPUs ...
CPU1: shutdown
psci: CPU1 killed.                                    
CPU2: shutdown                                    
psci: CPU2 killed.                                    
CPU3: shutdown                                    
psci: Retrying again to check for CPU kill                                    
psci: CPU3 killed.                                    
Enabling non-boot CPUs ...                                    
Detected VIPT I-cache on CPU1                                    
GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000                                    
CPU1: Booted secondary processor [410fd034]                                    
cache: parent cpu1 should not be sleeping                                    
CPU1 is up                                    
Detected VIPT I-cache on CPU2                                    
GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000                                    
CPU2: Booted secondary processor [410fd034]                                   
cache: parent cpu2 should not be sleeping                                    
CPU2 is up
Detected VIPT I-cache on CPU3
GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
CPU3: Booted secondary processor [410fd034]
cache: parent cpu3 should not be sleeping
CPU3 is up
PM: resume devices took 0.028 seconds
OOM killer enabled.
Restarting tasks ... done.
PM: suspend exit

Audio

Documents and Videos Description
DSP Concepts Offerings for i.MX 8 Processors Learn about audio platform offerings from DSP Concepts for the i.MX 8M family.
AN12195 Implement Low-Power Audio on i.MX8M This document discusses low-power audio application design on the i.MX 8M.

Simple Audio Example

Connect your earphone to the audio jack on the i.MX 8M Plus EVK board.

If your earphones include a microphone feature (TRRS with four contacts), do not push the microphone jack to the end. Leave one contact ring outside.

123456789101112131415161718192021222324 #aplay -1

  **** List of PLAYBACK Hardware Devices ****
  
  card 0: imxspdif [imx-spdif], device 0: S/PDIF PCM snd-soc-dummy-dai-0 [S/PDIF PCM snd-soc-dummy-dai-0]
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
  card 2: wm8524audio [wm8524-audio], device 0: HiFi wm8524-hifi-0 
  [] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
  card 2: wm8524audio [wm8524-audio], device 1: HiFi-ASRC-FE (*) 
  [] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
  # gst-launch-1.0 audiotestsrc ! alsasink device=plughw:2 
  Setting pipeline to PAUSED ... 
  Pipeline is PREROLLING ... 
  Redistribute latency... 
  Pipeline is PREROLLED ... 
  Setting pipeline to PLAYING ... 
  
  New clock: GetAudioSinkClock
  

You should be able to listen to a tone on the earphone.

When you are done with the tone, finish the command line by pressing kbd:[Ctrl+C]

Decoder Video Audio Example

This example explains how to decode just the audio from a video file. Copy a video file to your /home/root/ on your SD card rootfs partition, boot the board from the SD card and run the command below:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192# gplay-1.0 SampleVideo_1280x720_2mb.mp4

  FSL_GPLAY2_01.00_LINUX build on Mar 12 2018 11:48:19
  
  Set VideoSink kmssink
                              
  Set TextSink fakesink ====== AIUR: 4.3.4 build on Mar 12 2018 11:47:35. ======
                              
  Core: AVI_PARSER_03.05.29 build on Aug 31 2017 09:15:57
                              
  file: /usr/lib/imx-mm/parser/lib_avi_parser_arm_elinux.so.3.1
                              
  Track 00 [video]: Disabled
                              
  Codec: 4, SubCodec: 1
                              
  -----------------------
                              
  ------------------------ Track 01 [audio_0] Enabled
                              
  Duration: 0:09:56.424000000
                              
  Language: und
                              
  Mime: audio/mpeg, mpegversion=(int)1, channels=(int)2, rate=(int)48000, bitrate=(int)0
                              
  codec_data=(buffer)014d401fffe10017674d401fda014016ec0440000003004000000c83c60ca801000468ef3c80
                              
  ------------------------
                              
  ====== BEEP: 4.3.4 build on Mar 12 2018 11:47:45. ======
                              
  Core: MP3 decoder Wrapper build on Jan 11 2018 10:20:25
                             
  file: /usr/lib/imx-mm/audio-codec/wrap/lib_mp3d_wrap_arm_elinux.so.3
                              
  CODEC: BLN_MAD-MMCODECS_MP3D_ARM_02.13.01_ARMV8 build on Jan 11 2018 10:05:45. [Stop (No Repeated)][Vol=1.0][00:00:00/00:09:56]=========== fsl_player_play()=========== FSL_GPLAY2_01.00_LINUX build on Mar 12 2018 11:48:19
                              
  [h]display the operation Help
                              
  [p]Play
                              
  [s]Stop
                              
  [e]Seek
                              
  [a]Pause when playing, play when paused
                              
  [v]Volume
                              
  [m]Switch to mute or not
                              
  [>]Play next file
                              
  [ [r]Switch to repeated mode or not
                              
  [u]Select the video track
                              
  [d]Select the audio track
                              
  [b]Select the subtitle track
                             
  [f]Set full screen
                             
  [z]resize the width and height
                              
  [t]Rotate
                              
  [c]Setting play rate
                              
  [i]Display the metadata
                              
  [x]eXit
                              
  State changed: buffering
                              
  State changed: playing
                              
  [Playing (No Repeated)][Vol =1.0][00:00:13/00:00:13]EOS Found
                              
  getNextItem No next item!
                             
  No more media file, exit gplay!
                             
  State changed: stopped
                              
  Exit display thread
                              
  FSL_PLAYER_UI_MSG_EXIT
                              
  fsl_player_deinit
  

Display and Graphics

Display and Graphics

Documents and Videos Description
i.MX Graphics User's Guide This guide provides information on graphic APIs and driver support for developers writing graphics applications or video drivers.
i.MX 8 GStreamer User Guide Learn more about how to use GStreamer version 1.0 on the i.MX 8M Plus EVK. This guide includes examples for decode, encode, camera, video composition and video scaling and rotation.
Implementing Graphics in Real-time Industrial HMI Systems with NXP MCUs and Embedded Wizard NXP has partnered with TARA Systems to offer Embedded Wizard as an enabling software technology.
AN12189 Quick Start Guide for MX8-DSI-OLED1 for i.MX 8M Evaluation Kit This document provides a brief overview on how to get started with the MX8-DSI-OLED1 accessory card, a MIPI-DSI interface OLED display kit with touch screen support and the i.MX 8M EVK.
AN12188 Quick Start Guide for IMX-MIPI-HDMI for i.MX 8M Evaluation Kit This document provides a brief overview on how to get started with the i.MX 8M EVK and the IMX-MIPI-HDMI accessory card, which is used for converting the MIPI-DSI signal to an HDMI signal.
AN12187 Quick Start Guide for MINISASTOCSI for i.MX 8M Evaluation Kit This document provides a brief overview on how to get started with the i.MX 8M EVK and the MINISASTOCSI accessory card, a MIPI-CSI interface camera kit based on OmniVision chipset OV5640.

Camera Interfaces

Camera Interfaces

Documents and Videos Description
i.MX 8 Camera Use Cases Learn more about the i.MX 8 MIPI CSI use case, advanced Gstreamer camera use cases, available cameras and daughter cards supported by the i.MX 8M Plus EVK, compatible device tree (DTS) files and how to enable different camera options.
i.MX 8 GStreamer User's Guide Learn more about how to use GStreamer version 1.0 on the i.MX 8M Plus EVK. Includes examples for decode, encode, camera, video composition and video scaling and rotation.
AN12187 Quick Start Guide for MINISASTOCSI for i.MX 8M Evaluation Kit This document provides a brief overview on how to get started with the i.MX 8M EVK and the MINISASTOCSI accessory card, a MIPI-CSI interface camera kit based on OmniVision chipset OV5640.

Machine Learning

Machine learning (ML) typically encompasses applications where classification, recognition and prediction of man-made abstractions are desired. Examples include image recognition, gesture recognition, anomaly detection, speech-to-text, text-to-speech, ASR, scene recognition and many more. This section will focus specifically on the NXP ML tools applied to image or video streams. The audio section may reference the included examples.

Documents and Videos Description
eIQ® ML Software Development Environment Enables the use of ML algorithms on NXP MCUs, i.MX RT crossover MCUs and i.MX family SoCs. eIQ software includes inference engines, neural network compilers and optimized libraries.
i.MX Machine Learning User's Guide The NXP eIQ UM for i.MX toolkit provides a set of libraries and development tools for machine learning applications targeting NXP microcontrollers and application processors.
NXP eIQ® Machine Learning Software Development Environment for i.MX Applications Processors This document provides guidance for the supported ML software for the i.MX family and includes an eIQ introduction, Yocto installation guide and step-by step guide for running all supported DNN and non-DNN examples.
eIQ FAQ This document covers some of the most commonly asked questions about eIQ and embedded machine learning.
AN13001 Glow Memory Analysis How to understand the Glow memory information generated by the Glow compiler and calculate the memory required for a particular model. This compiler can then be used to determine the minimum memory size that is needed to run the model.
AN12766 Anomaly Detection with eIQ using K-Means Clustering in Tensor Flow Lite Step-by-step instruction to enable a machine condition monitoring application using anomaly detection.
Getting Started with eIQ Software for i.MX Applications Processors A series of step-by-step tutorials using our eIQ ML software development environment that will show unboxing, deployment, modeling and inferencing at the edge.
AN12964 i.MX 8M Plus NPU Warmup Time The purpose of this document is to clarify the impact of the NPU warm-up time on overall performance.

Tools and References

eIQ® Inference with DeepViewRT® - Platform-optimized, proprietary runtime inference engine for machine learning applications for EdgeVerse MCUs and microprocessors.

eIQ® Inference with TensorFlow® Lite Library - TensorFlow Lite, a low latency, smaller footprint inference engine, uses the Eigen library and techniques such as pre-fused activations and quantized kernels.

Device Management and Secure OTA

Device Management and Secure OTA

Documents and Videos Description
AN12900 Secure Over-the-Air Prototype for Linux Using CAAM and Mender or SW Update Provides a prototype implementation for Secure OTA for Linux images, specifically for the i.MX 8M/MM.
Docker On i.MX8MM with Ubuntu This document describes a way to create ubuntu rootfson host pc and install docker for any ARM 64 platform.

Minicom Tutorial

Serial Communication Console Setup

On the command prompt of the Linux host machine, run the following command to determine the port number:

1 $ ls /dev/ttyUSB* 

The smaller number is for Arm® Cortex®-A53 core and the bigger number is for Arm® Cortex®-M4 core.

Minicom

Use the following commands to install and run the serial communication program (minicom as an example):

  1. Install Minicom using Ubuntu package manager.
    1 $ sudo apt-get install minicom 
  2. Launch Minicom using a console window using the port number determined earlier.
    1 $ sudo minicom /dev/ttyUSB* -s 
  3. Configure Minicom as shown in Figure 3
  4. The next step is to Connect the HDMI cable.

Tera Term Tutorial

Serial Communication Console Setup

The FTDI USB-serial chip on i.MX8MQuad enumerates two serial ports. Assume that the ports are COM9 and COM10. The smaller numbered port ( COM9) is for the serial console communication from Arm® Cortex®-A53 and the larger numbered port (COM10) is for Arm® Cortex®-M4 core. The serial-to-USB drivers are available at VCP Drivers

Tera Term

Is an open source terminal emulation application. This program displays the information sent from the NXP development platform’s virtual serial port.

  • Download Tera Term . After the download, run the installer and then return to this webpage to continue
  • Launch TeraTerm. The first time it launches, it shows the following dialog. Select the serial option. Assuming your board is plugged in, there should be a COM port automatically populated in the list.
  • Configure the serial port settings (using the COM port number identified earlier) to 115200 baud rate, 8 data bits, no parity and 1 stop bit. To do this, go to Setup → Serial Port and change the settings
  • Verify that the connection is open. If connected, Tera Term shows something like below in its title bar.
  • The next step is to Connect the HDMI cable

PuTTY Tutorial

Serial Communication Console Setup

The FTDI USB-serial chip on i.MX8MQuad enumerates two serial ports. Assume that the ports are COM9 and COM10. The smaller numbered port (COM9) is for the serial console communication from Arm® Cortex®-A53 and the larger numbered port (COM10) is for Arm® Cortex®-M4. The serial-to-USB drivers are available at VCP Drivers .

PuTTY is a popular terminal-emulation application. This program displays the information sent from the NXP development platform’s virtual serial port.

  • Download PuTTY After the download, run the installer and then return to this webpage to continue
  • Launch PuTTY by either double clicking on the executable file you downloaded or from the Start menu, depending on the type of download you selected
  • Configure In the window that launches. Select the Serial radio button and enter the COM port number that you determined earlier. Also enter the baud rate, in this case 115200
  • Click Open to open the serial connection. Assuming the board is connected and you entered the correct COM port, the terminal window opens. If the configuration is not correct, PuTTY alerts you
  • The next step is to Connect the HDMI cable

Support

Training

To learn what to do next, find your issue below. If you still need help, contact NXP Support.

Training Description
i.MX 8M Plus Training Full list of on-demand training, how-to videos and webinars from NXP about this product.