i.MX6SL: i.MX 6SoloLite Processors – Single-Core, Low-Power, EPD Controller, Arm Cortex-A9 Core

This page will help guide you through learning about the NXP Linux® OS BSP and i.MX6SL EVK.

Evaluation Kit Contains:

  • MCIMX6SLEVK
  • Micro USB-B-2-USB-Type A male, V2.0 cable
  • 100/240 V input, 5 V, 2.4 A output W/AC adaptor power supply
  • Quick Start Guide
  • Two SD cards: Programmed Android™

1.1 Get Familiar with the Board

1.2 Insert the SD Card (SD3)

The kit comes with an SD card with a pre-built NXP Linux® BSP image. Without modifying the system, booting from the image will provide a default system with certain features for building other applications on top of Linux®.

To understand more about NXP Linux® BSP image, please continue reading the next section: BSP Introduction.

1.3 Connect USB Debug Cable

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

Terminal window configuration: 115200 baud, 8 data bits, 1 stop bit, no parity

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

$ ls /dev/ttyUSB*

Use the following command to install serial communication program:

$ sudo apt-get install minicom

On Windows,

To determine the port number of the i.MX board virtual COM port, open the device manager and look under the "Ports" group.

If needed, the serial-to-USB drivers can be found at ftdichip.com/FTDrivers.htm.

Not sure how to use a terminal application? Try one of these tutorials:

1.4 Connect HDMI (optional)

Connect an HDMI cable to the HDMI connector J8. Connect the other end to the HDMI cable to an HDMI capable monitor.

1.5 Connect User Interface Devices (optional)

Attach a keyboard and mouse to interact with the OS GUI displayed on the monitor. Attach a micro-USB hub to micro-USB jack J505 and connect the keyboard and mouse to the hub if more than one devices are used.*

*Note: A micro B male to A female adapter cable may be needed.

1.6 Connect Ethernet Cable (optional)

Connect an Ethernet cable to the Ethernet jack J7.

1.7 Connect Power Supply

Connect the 5 V power supply cable to the 5 V DC power jack P1.

When powered on, the processor starts executing code from on-chip ROM. With default Boot Switch setup, this code reads the fuses to find out which media to search for a bootable image. Then it will find the SD card and begin U-Boot execution automatically.

Information will be printed in the serial console. If you don't stop the U-boot process, it will boot the Linux® kernel.

1.8 Congratulations! Your Linux® is booted!

Once Linux® is booted, you can login with username root and no password.

To jump in U-Boot, press any key before the value of the U-Boot environment variable, "bootdelay", decreases and before it times out (default 3 seconds). If you stop the U-boot process, you can run the following command to boot Linux® again:

U-Boot >boot

Choose a Development Path:

2.1 Overview

Before the Linux® OS kernel can boot on an i.MX board, the Linux® image needs to be copied to a boot device and the boot switches need to be set to boot that device.

To bring up the board and run Linux®, four elements are needed:

  • Boot loader (U-Boot)
  • Linux® kernel image (zImage)
  • A device tree file (.dtb) for the board being used
  • A root file system (rootfs) for the particular Linux® image

2.2 Prepare a Linux® BSP Image

The release contains a pre-built SD card image that is built specifically for the i.MX 6Quad Sabre-SD board. The SD card image is a file that is typically named <board name.sdcard> and is a specially constructed disk image including partitions and all necessary files to boot the board, including all four components mentioned above.

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.

With the source code and documentation, the users also can customize the Linux® image built for your own device, i.e. add or remove system components.

The Yocto Project is the framework of choice with NXP professional support to build the images that are used for booting a Linux® kernel, although other methods can be used.

For more details, see NXP Yocto Project User's Guide here

2.3 Download Linux® BSP Image

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

For Getting-Started, we only list the few methods to transfer the BSP image to SD card.Experienced Linux® developer can explore other options.

The .sdcard image (either from a pre-built or self-built BSP image) is an SD card image that can be flashed directly. This is the simplest way to load everything needed onto the card with one command.

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

An SD/MMC card reader is required to transfer the bootloader and kernel images to initialize the partition table and copy the root file system.

Linux® host:

The Linux® kernel running on the Linux® host assigns a device node to the SD/MMC card reader.

To identify the device node assigned to the SD/MMC card, carry out the following command in the host computer:

WARNING: The instructions below will permanently delete existing content on the SD card and are dangerous to your PC if run incorrectly. If you have question or would like further details please consult the i.MX Linux® User's Guide.

$ cat /proc/partitions

Carry out the following command to copy the SD card image to the SD/MMC card. Change sdx below to match the one used by the SD card.

$ sudo dd if=<filename.sdcard> of=/dev/sd<x> bs=1M && sync

where <filename.sdcard> is the correct board specific SD card image

WARNING: Make sure that the device node is correct for the SD/MMC card. Otherwise, it may damage your operating system or data on the hard disk of your computer.

To setup the partition manually, please read 4.3.3 in i.MX Linux® User's Guide

To load individual component separately when the full SD card image is not used, please read 4.3.4-3.4.6 in i.MX Linux® User's Guide

The U-Boot bootloader is able to download images over Ethernet to RAM and then writes to an SD card. For this operation. Network communications need to be configured.

For instructions about how to download U-Boot to an MMC/SD card that is not the one used to boot from, please refer to section 4.4.1

Images can be downloaded to other boot media (memory storage device) using U-Boot.To use other memory device, please refer to sections under 4.4.1

The Manufacturing Tool, named MfgTool, is a tool that runs on a Windows OS host and is used to download images to different devices on an i.MX board. The tar.gz file can be found with the pre-built Linux® BSP image.

Use Manufacturing Tool

2.4 Boot Switch Setup

The boot modes of the i.MX boards are controlled by the boot configuration DIP switches on the board.

TABLE 1: BOOT OPTIONS

S1_2
BOOT_MODE1
S1_1
BOOT_MODE0
Boot from fuses 0 0
Serial DownloaderD 0 1
Internal Boot 1 0
Reserved 1 1

TABLE 2: SW3 CONFIGURATION

SW3_8
BT_CFG1_0
SW3_7
BT_CFG1_1
SW3_6
BT_CFG1_2
SW3_5
BT_CFG1_3
SW3_4
BT_CFG1_4
SW3_3
BT_CFG1_5
SW3_2
BT_CFG1_6
SW3_1
BT_CFG1_7
SD1 * ** * * * 0 1 0
SD2D * ** * * * 0 1 0
SD3 * ** * * * 0 1 0
SD4 * ** * * * 0 1 0
EMMC X X * * * 1 1 0
SPI NOR X X X X 1 1 0 0

TABLE 3: SW4 CONFIGURATION

SW4_8
BT_CFG2_0
SW4_7
BT_CFG2_1
SW4_6
BT_CFG2_2
SW4_5
BT_CFG2_3
SW4_4
BT_CFG2_4
SW4_3
BT_CFG2_5
SW4_2
BT_CFG2_6
SW4_1
BT_CFG2_7
SD1 * X X 0 0 1 * *
SD2D * X X 1 0 1 * *
SD3 * X X 0 1 1 * *
SD4 * X X 1 1 1 * *
EMMC * * * 1 0 0 1 1
SPI NOR X X X X X X X X

TABLE 4: SW5 CONFIGURATION

SW5_8
BT_CFG4_0
SW5_7
BT_CFG4_1
SW5_6
BT_CFG4_2
SW5_5
BT_CFG4_3
SW5_4
BT_CFG4_4
SW5_3
BT_CFG4_5
SW5_2
BT_CFG4_6
SW5_1
BT_CFG4_7
SD1 X X X X X X X X
SD2D X X X X X X X X
SD3 X X X X X X X X
SD4 X X X X X X X X
EMMC X X X X X X X X
SPI NOR 0 0 0 1 0 0 X X

X: None specified

D: Default configuration

*: Switch needs to be configured for high or low depending on the application needs. Please check reference manual for boot configuration options.

**: 1 = power cycle on power-up via SDa_RST_B (SD3_RST). 0 = no power cycle

For boot switch setup to boot from other device (SD3 and SATA), please refer to 4.5 in i.MX Linux® User Guide

3.1 Key Features Demo in Linux®

With Linux® running on the i.MX platform, you can evaluate special features that i.MX SoCs provide:

There are three main power management techniques on i.MX boards:

  • Suspend and resume commands
  • CPU frequency scaling
  • Bus frequency scaling

After Linux® setup, for more details about developing applications in user space. Please see i.MX6 Linux® Reference Manual.

3.2 Application development

After Linux® setup, for more details about developing applications in user space. Please see i.MX6 Linux® Reference Manual.

3.3 Yocto Project

NXP Yocto Project User's Guide covers how to set up the Linux® host machine, how to run and configure a Yocto Project, generate an image, and generate a rootfs

For more details, see NXP Yocto Project User's Guide

3.4 Extended Features in Android

The i.MX Android Wi-Fi Display Sink APIs allows a device to act as Wi-Fi Display Sink to render the audio and video contents from Wi-Fi Display Source in real time.

Using the i.MX Android Wi-Fi Display Sink APIs, an Android application can perform the following:

  • Scan for other Wi-Fi Display Source devices.
  • Get self peer name and MAC address.
  • Set the device name which is displayed in other Wi-Fi Display devices.
  • Set the display surface to render the RTSP streaming from the Wi-Fi Display Source Device.
  • Start or stop the RTSP streaming between Wi-Fi Display Source and Sink.
  • Disconnect Wi-Fi display connection from P2P layer.
  • Send the input event to the Wi-Fi Display Source device, which known as UIBC.

The HDCP2.X (High-bandwidth Digital Content Protection) function based on the Android Extended Wi-Fi Display Sink Release package is designed to create a secure connection between a source and a display by enabling:

  • The High Assurance Boot (HAB) for an Android image
  • Generation and provision keyblob for HDCP2.X key.

The features described in the release notes are supported by NXP implemented media framework OMXPlayer. They are only available after applied android_L5.1.1_2.0.0-ga_omxplayer_source.tar.gz software package.

Only codecs that have no license restriction are included in OMXPlayer package.

Check Video/Audio decoder/encoder in i.MX Android Extended Codec Release Notes

To install the OMXPlayer package, perform the following steps:

  1. Copy the OMXPlayer package to the Android root directory.
  2. Go to the Android root directory and decompress the OMXPlayer package.

This step generates the device/fsl-codec, external/fsl_imx_omx, lean_obj_before_building.sh, and switch_build_to.sh.

$ source build/envsetup.sh
$ lunch <target build platform> # e.g., sabresd_6dq-user
$./switch_build_to.sh full
$./clean_obj_before_building.sh
$make

3.5 Further resources

i.MX Community

The default boot mode configures the system to display the UI on the MCIMX28LCD (sold separately). To change the default configuration and enable the MCIMXHDMICARD daughte rcard (sold separately), hit any key to stop u-boot from proceeding. Once prompt is visible, the u-boot can be configured as follows:

For LCD boot up, type the following commands (as one line):

setenv bootargs console=ttymxc0,115200 init=/initandroidboot.console=ttymxc0panel=lcdsaveenvreset

For HDMI boot up, type the following commands (as one line):

setenv bootargs console=ttymxc0,115200 init=/initandroidboot.console=ttymxc0panel=hdmisaveenvreset