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

Getting Started with the i.MX 8M Nano EVK Board

Last Modified: 2019-11-19 14:42:00Supports i.MX 8M Nano Evaluation Kit

1. Out of the Box

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

Development kit contains:

  • i.MX 8M Nano EVK board for smart devices
  • USB cable (micro-B to standard-A)
  • USB Type-C Cable – Type-C Male to Type-A Male
  • USB Type-C to A Adapter
  • USB Type C 45W Power Delivery Supply, 5V/3A; 9V/3A; 15V/3A; 20V/2.25A supported
  • IMX-MIPI-HDMI Daughter Card
  • Mini-SAS cable
  • Quick Start Guide
  • Android BSP flashed into the eMMC.
Video Player is loading.
Current Time 0:00
Duration 4:52
Loaded: 0%
Stream Type LIVE
Remaining Time 4:52
 
1x
  • Chapters
  • descriptions off, selected
  • captions off, selected
  • en (Main), selected

    1.1 Get Familiar With the Board

    i.MX 8M Nano Callouts Front side

    i.MX 8M Nano Top side

    i.MX 8M Nano Callouts Back side

    i.MX 8M Nano Back side

    The i.MX 8M Nano EVK kit comes with an IMX-MIPI-HDMI daughter card, which is required to showcase the board's graphical display capabilities.

    I.MX-MIPI-HDMI-8M-NANO-EVK

    I.MX-MIPI-HDMI-8M-NANO-EVK

    1.2 Confirm Boot Switches

    The boot switches should be set to boot from the eMMC. Only SW1101 [1-4] are used for boot. See table below.

    Boot Device SW1101 SW1102
    eMMC/SDHC3 0100xxxxxx xxxxxxxxxx

    The same information can be found on i.MX 8M Nano Reference Manual and on silkscreen on the board near the switches.

    1.3 Boot From eMMC

    The i.MX 8M Nano EVK comes with a pre-built NXP Android 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 Android.

    1.4 Connect USB Debug Cable

    Connect the micro-B end of the supplied USB cable into Debug UART port J901. Connect the other end of the cable to a host computer.

    If you are not sure about how to use a terminal application, try one of the following tutorials depending on the operating system of the host machine: Minicom Tutorial, Tera Term Tutorial, PuTTY Tutorial.

    1.5 Connect the HDMI Cable

    The MIPI-DSI to HDMI accessory card and mini SAS cable are needed for evaluating HDMI.

    Connect the mini-SAS cable to J801 on the EVK (MIPI DSI Connector). Connect the other end of mini-SAS cable to J5 on the MIPI to HDMI accessory card. See below picture for reference.

    i.MX 8M NANO Assambled

    i.MX 8M NANO Assambled

    1.6 Boot Switch Setup

    The boot sequence is detailed in the i.MX 8M Nano 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. 8

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

    Boot Media SW1101 [D1-D10] SW1102 [D1-D10]
    eMMC/SDHC3 0100xxxxxx xxxxxxxxxx
    MicroSD/SDHC2 1100xxxxxx xxxxxxxxxx
    NAND Flash 0010xxxxxx xxxxxxxxxx
    SDP 1000xxxxxx xxxxxxxxxx

    1.7 Connect Power Supply

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

    Power the board by flipping the switch (SW101).

    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.

    1.8 Congratulations Android Has Booted

    During the boot process, you will see 4 penguins appear in the upper left-hand corner of the HDMI display. You will then see the Android logo and the Android desktop can be seen after the boot process is finished. You can start operating with the mouse. Connect the mouse to J301 (USB Type-C Port1) through the USB Type-C to A adapter that is provided in the box.

    2. Get Software

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

    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.

    For this getting started guide, only a few methods to transfer the Linux BSP image to an SD card are listed. Experienced Linux developers can explore other options.

    2.2 Download an NXP Linux BSP Pre-Built Image

    The latest pre-built images for the i.MX 8M Nano 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.

    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 .sdcard 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)

    The latest pre-built images for the i.MX 8M Nano 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.

    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 .sdcard image is loaded and the individual parts are overwritten with the specific components.

    3. Build, Run

    3.1 Android™

    This section describes the boot process of loading the i.MX 8M Nano 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 Building Android .

    The current release includes Demo Images, Source code and Documentation. These can also be found in Android OS for i.MX Applications Processor.

    3.2 Overview

    The storage devices on the development system (MMC/SD or NAND) must be programmed with the U-Boot boot loader. 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.3 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 Tool or on the demo images downloader link.

    3.4 Burn NXP Android BSP Image Using UUU

    In addition to the connections from Out of box chapter, connect the J301 to the host machine using the proper USB cable and 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.

    4. MCUXpresso SDK

    The MCUXpresso Software Development Kit (MCUXpresso SDK) provides comprehensive software source code to be executed in the i.MX 8M Nano M7 core. If you do not wish to enable the Cortex®-M7 on i.MX 8M Nano 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 of this Getting Started guide, prepare an SD card with a pre-built U-Boot + Linux image from the Linux BSP package for the i.MX 8M Nano 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 Consult the Boot Switch Setup
    5. Connect the DEBUG UART connector on the board to the PC through 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 in Out of box for more instructions on serial communication applications

    6. Open a second terminal on the i.MX 8M Nano EVK board's second enumerated serial port. 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.