Android™ User's Guide Android Oreo 8.0

Android_User's_Guide

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 24

DownloadAndroid™ User's Guide Android Oreo 8.0
Open PDF In BrowserView PDF
NXP Semiconductors
User's Guide

Document Number: AUG
Rev. O8.0.0_1.0.0, 02/2018

Android™ User's Guide

Contents

1 Overview

This document describes how to build Android Oreo 8.0
platform for the i.MX 6 and i.MX 7 series devices. It provides
instructions for:
• Configuring a Linux® OS build machine.
• Downloading, patching, and building the software
components that create the Android™ system image.
• Building from sources and using pre-built images.
• Copying the images to boot media.
• Hardware/software configurations for programming the
boot media and running the images.
For more information about building the Android platform,
see source.android.com/source/building.html.

2 Preparation

The minimum recommended system requirements are as
follows:
• 16 GB RAM
• 300 GB hard disk
For any problems on the building process related to the jack
server, see the Android website source.android.com/source/
jack.html.

1

Overview....................................................................1

2

Preparation................................ ................................ 1

3

Building the Android platform for i.MX...................2

4

Running the Android Platform with a
Prebuilt Image......................................................... 10

5

Programming Images..................... ......................... 13

6

Booting................................ ................................... 15

7

Revision History......................... ............................ 23

Building the Android platform for i.MX

2.1 Setting up your computer
To build the Android source files, use a computer running the Linux OS. The Ubuntu 14.04 64bit version and openjdk-8-jdk
is the most tested environment for the Android Oreo 8.0 build.
After installing the computer running Linux OS, check whether all the necessary packages are installed for an Android build.
See "Setting up your machine" on the Android website source.android.com/source/initializing.html.
In addition to the packages requested on the Android website, the following packages are also needed:
$
$
$
$
$
$
$
$
$
$
$

sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo

apt-get
apt-get
apt-get
apt-get
apt-get
apt-get
apt-get
apt-get
apt-get
apt-get
apt-get

install
install
install
install
install
install
install
install
install
install
install

uuid uuid-dev
zlib1g-dev liblz-dev
liblzo2-2 liblzo2-dev
lzop
git-core curl
u-boot-tools
mtd-utils
android-tools-fsutils
openjdk-8-jdk
device-tree-compiler
gdisk

NOTE
If you have trouble installing the JDK in Ubuntu, see How to install misc JDK in Ubuntu
for Android build.
Configure git before use. Set the name and email as follows:
• git config --global user.name "First Last"
• git config --global user.email "first.last@company.com"

2.2 Unpacking the Android release package
After you set up a computer running Linux OS, unpack the Android release package by using the following commands:
$ cd ~ (or any other directory you like)
$ tar xzvf mx-o8.0.0_1.0.0_ga.tar.gz

3 Building the Android platform for i.MX
3.1 Getting Android source code (Android/kernel/U-Boot)
The i.MX Android release source code consists of three parts:
• NXP i.MX public source code, which is maintained in CodeAurora Forum repository.
• AOSP Android public source code, which is maintained in android.googlesource.com.
• NXP i.MX Android proprietary source code package, which is maintained in www.NXP.com.
To generate the i.MX Android release source code build environment, follow the steps below. Assume you had i.MX
Android proprietary source code package imx-o8.0.0_1.0.0.tar.gz under the ~/. directory.
$
$
$
$

mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo
chmod a+x ~/bin/repo
export PATH=${PATH}:~/bin

> ~/bin/repo

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
2

NXP Semiconductors

Building the Android platform for i.MX
$ source ~/imx-o8.0.0_1.0.0_ga/imx_android_setup.sh
# By default, the imx_android_setup.sh script will create the source code build environment
in the folder ~/android_build
# ${MY_ANDROID} will be refered as the i.MX Android source code root directory in all i.MX
Andorid release documentation.
$ export MY_ANDROID=~/android_build

3.2 Building Android images
Building the Android image is performed when the source code has been downloaded (Section 3.1) and patched (Section
3.2).
Commands lunch  to set up the build configuration and make to start the build process are
executed.
The build configuration command lunch can be issued with an argument - string, such as lunch
sabresd_6dq-userdebug, or can be issued without the argument presenting a menu of selection.
The Build Name is the Android device name found in the directory ${MY_ANDROID}/device/fsl/. The following table lists
the i.MX build names.

Table 1. Build names
Build name

Description

evk_6sl

i.MX 6SoloLite Evaluation Kit

sabreauto_6q

i.MX 6Quad/6DualLite/6QuadPlus SABRE-AI Board

sabresd_6dq

i.MX 6Quad/6DualLite/6QuadPlus SABRE-SD Board and SABRE Platform

sabresd_6sx

i.MX 6SoloX SABRE-SD Board

sabreauto_6sx

i.MX 6SoloX SABRE-AI Board

sabresd_7d

i.MX 7Dual SABRE-SD Board

The build type is used to specify what debug options are provided in the final image. The following table lists the build types.

Table 2. Build types
Build type

Description

user

Production ready image, no debug

userdebug

Production ready image similar with "user" but with root access and debug
tools

eng

Development image with debug tools

Android build steps are as follows:
1. Change to the top level build directory.
$ cd ${MY_ANDROID}

2. Set up the environment for building. This only configures the current terminal.
$ source build/envsetup.sh

3. Execute the Android lunch command. In this example, the setup is for the production image of i.MX 6DualQuad
SABRE Board/Platform device with user type.
$ lunch sabresd_6dq-userdebug

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

3

Building the Android platform for i.MX

4. Execute the make command to generate the image.
$ make 2>&1 | tee build-log.txt

When the make command is complete, the build-log.txt file contains the execution output. Check for any errors.
For BUILD_ID & BUILD_NUMBER changing, update build_id.mk in your ${MY_ANDROID} directory. For details, see
the Android™ Frequently Asked Questions (AFAQ).
For i.MX 6DualLite SABRE-SD, i.MX 6Dual/6Quad SABRE-SD, and i.MX 6QuadPlus SABRE-SD boards, the same build
configuration is used. These two boards share the same kernel/system/recovery images with the exception of the U-Boot
image. The following outputs are generated by default in ${MY_ANDROID}/out/target/product/sabresd_6dq:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

root/: root file system (including init, init.rc). Mounted at /.
system/: Android system binary/libraries. Mounted at /system.
data/: Android data area. Mounted at /data.
recovery/: root file system when booting in "recovery" mode. Not used directly.
boot-imx6q.img: composite image for i.MX 6Dual/6Quad SABRE-SD, which includes the kernel zImage, ramdisk,
board's device tree binary, and boot parameters.
boot-imx6qp.img: composite image for i.MX 6QuadPlus SABRE-SD, which includes the kernel zImage, ramdisk,
board's device tree binary, and boot parameters.
boot-imx6dl.img: composite image for i.MX 6DualLite SABRE-SD, which includes the kernel zImage, ramdisk,
board's device tree binary, and boot parameters.
boot-imx6q-ldo.img: a composite image for i.MX 6Dual/6Quad 1.2 G Hz SABRE-SD, which includes the kernel
zImage, ramdisk, board's device tree binary, and boot parameters.
ramdisk.img: ramdisk image generated from "root/". Not used directly.
system.img: EXT4 image generated from "system/". It can be programmed to "SYSTEM" partition on SD/eMMC card
with "dd".
recovery-imx6q.img: EXT4 image for i.MX 6Dual/6Quad SABRE-SD, which is generated from "recovery/". Can be
programmed to the "RECOVERY" partition on SD/eMMC card with "dd".
recovery-imx6qp.img: EXT4 image for i.MX 6QuadPlus SABRE-SD, which is generated from "recovery/". Can be
programmed to the "RECOVERY" partition on SD/eMMC card with "dd".
recovery-imx6q-ldo.img: EXT4 image for i.MX 6Dual/6Quad 1.2 G Hz SABRE-SD, which is generated from
"recovery/". Can be programmed to "RECOVERY" partition on SD/eMMC card with "dd".
recovery-imx6dl.img: EXT4 image for i.MX 6DualLite SABRE-SD, which is generated from "recovery/". Can be
programmed to the "RECOVERY" partition on SD/eMMC card with "dd".
partition-table.img: GPT partition table image, used for 8 GB SD card.
partition-table-14GB.img: GPT partition table image, used for 16 GB SD card.
partition-table-28GB.img: GPT partition table image, used for 32 GB SD card.
u-boot-imx6q.imx: U-Boot image with no padding for i.MX 6Dual/6Quad SABRE-SD.
u-boot-imx6qpimx: U-Boot image with no padding for i.MX 6QuadPlus SABRE-SD.
u-boot-imx6dl.imx: U-Boot image with no padding for i.MX 6DualLite SABRE-SD.
vendor.img: vendor image, which holds platform binaries, mounted at /vendor.
NOTE
• To build the U-Boot image separately, see Building U-Boot images.
• To build the kernel uImage separately, see Building a kernel image.
• To build boot.img, see Building boot.img.
The default build is configured for internal eMMC boot storage. See Building Android
image for the SD card on the SABRE-SD Board for the configuration steps to make SD
card in Slot 3 as the boot storage.

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
4

NXP Semiconductors

Building the Android platform for i.MX

3.2.1 Configuration examples of building i.MX devices
The following table shows examples of using the lunch command to set up different i.MX devices. After the desired i.MX
device is set up, the make command is used to start the build.

Table 3. i.MX device lunch examples
Build name

Description

i.MX 6DualLite/Quad/QuadPlus SABRE-SD Board and
Platform

$ lunch sabresd_6dq-userdebug

i.MX 6Quad/DualLite/QuadPlus SABRE-AI Board

$ lunch sabreauto_6q-userdebug

i.MX 6SoloLite EVK Board

$ lunch evk_6sl-userdebug

i.MX 6SoloX SABRE-SD Board

$ lunch sabresd_6sx-userdebug

i.MX 6SoloX SABRE-AI Board

$ lunch sabreauto_6sx-userdebug

i.MX 7Dual SABRE-SD Board

$ lunch sabresd_7d-userdebug

After the lunch command is executed, the make command is issued:
$ make 2>&1 | tee build-log.txt

3.2.2 User build mode
A production release Android system image is created by using the user Build Type. For configuration options, see Table
"Build types" in Section Building Android images.
The notable differences between the user and eng build types are as follows:
• Limited Android System image access for security reasons.
• Lack of debugging tools.
• Installation modules tagged with user.
• APKs and tools according to product definition files, which are found in PRODUCT_PACKAGES in the sources
folder ${MY_ANDROID}/device/fsl/imx6/imx6.mk. To add customized packages, add the package
MODULE_NAME or PACKAGE_NAME to this list.
• The properties are set as: ro.secure=1 and ro.debuggable=0.
• adb is disabled by default.
The i.MX development tool options are shown below from: IMX6_SW: i.MX 6 Series Software and Development Tool
Resources.

Table 4. Development tool options
i.MX
6Quad

i.MX 6Dual

i.MX
6DualLite

i.MX 6Solo

i.MX
6SoloX

i.MX
6SoloLite

i.MX 7Dual

i.MX
6QuadPlus

SABRE
Board for
Smart
Devices

*

Uses i.MX
6Quad

-

-

*

-

-

*

SABRE
Platform for
Smart
Devices

*

Uses i.MX
6Quad

*

Uses i.MX
6DualLite

-

-

*

-

Table continues on the next page...

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

5

Building the Android platform for i.MX

Table 4. Development tool options (continued)
i.MX
6Quad

i.MX 6Dual

i.MX
6DualLite

i.MX 6Solo

i.MX
6SoloX

i.MX
6SoloLite

i.MX 7Dual

i.MX
6QuadPlus

SABRE for *
Automotive
Infotainment

Uses i.MX
6Quad

*

Uses i.MX
6DualLite

-

-

-

*

Evaluation
Kit

-

-

-

-

*

-

-

-

* Supported through the superset device (i.MX 6Quad is superset to i.MX 6Dual, i.MX 6DualLite is superset to i.MX 6Solo)

Table 5. Android system image production build method 1
i.MX development tool

Description

SABRE Board/Platform for
Smart Devices

SABRE Board for Automotive
Infotainment

Image build command

i.MX 6QuadPlus/6Quad, i.MX
6DualLite

$ make PRODUCT-sabresd_6dq-userdebug 2>&1 |
tee build-log.txt

i.MX 6SoloX

$ make PRODUCT-sabresd_6sx-userdebug 2>&1 |
tee build-log.txt

i.MX 7Dual

$ make PRODUCT-sabresd_7d-userdebug 2>&1 | tee
build-log.txt

i.MX 6Dual/6Quad/6QuadPlus, i.MX $ make PRODUCT-sabreauto_6q-userdebug 2>&1 |
6DualLite
tee build-log.txt

Evaluation Kit

i.MX 6SoloX

$ make PRODUCT-sabreauto_6sx-userdebug 2>&1 |
tee build-log.txt

i.MX 6SoloLite

$ make PRODUCT-evk_6sl-userdebug 2>&1 | tee
build-log.txt

Another method to create Android System Images is setting the environment and then issuing the make command. To set up
the environment, execute the script ${MY_ANDROID}/build/envsetup.sh. The lunch command and configuration
argument for the Development Tool is then executed. To start the build, use the make command. The following table lists the
lunch configuration values.

Table 6. Android system image production build method 2
i.MX development tool
SABRE Board/Platform for Smart
Devices

SABRE for Automotive Infotainment
Evaluation Kit

Description

Lunch configuration

i.MX 6QuadPlus/6Quad, i.MX 6DualLite

sabresd_6dq-userdebug

i.MX 6SoloX

sabresd_6sx-userdebug

i.MX 7Dual

sabresd_7d-userdebug

i.MX 6Dual/6Quad , i.MX 6DualLite

sabreauto_6q-userdebug

i.MX 6SoloX

sabreauto_6sx-userdebug

i.MX 6SoloLite

evk_6sl-userdebug

An example for the SABRE Board for Smart Devices i.MX 6Dual/Quad is:
$
$
$
$

cd ${MY_ANDROID}
source build/envsetup.sh
lunch sabresd_6dq-userdebug
make

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
6

NXP Semiconductors

Building the Android platform for i.MX

To create Android platform over-the-air, OTA, and package, the following make target is specified:
$ make otapackage

For more Android platform building information, see source.android.com/source/building.html.
All the output files to create a bootable Android image should be all created in {MY_ANDROID}/out/target/product/
.

3.3 Building U-Boot images
After you set up U-Boot using the steps outlined above, you can find the tool (mkimage) under tools/.
$ cd ${MY_ANDROID}/vendor/nxp-opensource/uboot-imx
$ export ARCH=arm
$ export CROSS_COMPILE=${MY_ANDROID}/prebuilts/gcc/linux-x86/arm/arm-linuxandroideabi-4.9/bin/arm-linux-androideabi$ make distclean

For i.MX 6Quad/6QuadPlus SABRE-SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6qpsabresdandroid_config
To build uboot.img that is used in MFGTOOL
make mx6qpsabresd_config
make

For i.MX 6Quad SABRE-SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6qsabresdandroid_config
To build uboot.img that is used in MFGTOOL
make mx6qsabresd_config
make

For i.MX 6DualLite SABRE-SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6dlsabresdandroid_config
To build uboot.img that is used in MFGTOOL
make mx6dlsabresd_config
make

For i.MX 6Solo SABRE-SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6solosabresdandroid_config
To build uboot.img that is used in MFGTOOL
make mx6solosabresd_config
make

For i.MX 6Quad SABRE-AI SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6qsabreautoandroid_config
To build uboot.img that is used in MFGTOOL
make mx6qsabreauto_config
make

For i.MX 6QuadPlus SABRE-AI SD:

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

7

Building the Android platform for i.MX
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6qpsabreautoandroid_config
To build uboot.img that is used in MFGTOOL
make mx6qpsabreauto_config
make

For i.MX 6DualLite SABRE-AI SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6dlsabreautoandroid_config
To build uboot.img that is used in MFGTOOL
make mx6dlsabreauto_config
make

For i.MX 6Solo SABRE-AI SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6solosabreautoandroid_config
To build uboot.img that is used in MFGTOOL
make mx6solosabreauto_config
make

For i.MX 6SoloLite EVK SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6slevkandroid_config
To build uboot.img that is used in MFGTOOL
make mx6slevk_config
make

For i.MX 6SoloX SABRE-SD SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6sxsabresdandroid_config
To build uboot.img that is used in MFGTOOL
make mx6sxsabresd_config
make

For i.MX 6SoloX SABRE-AI SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx6sxsabreautoandroid_config
To build uboot.img that is used in MFGTOOL
make mx6sxsabreauto_config
make

For i.MX 7Dual SABRE-SD SD:
#
$
#
$
$

To build uboot.imx that is used in Android platform
make mx7dsabresdandroid_config
To build uboot.img that is used in MFGTOOL
make mx7dsabresd_config
make

"u-boot.imx" is generated if you have a successful build.
NOTE
Any image that should be loaded by U-Boot must have an unique image head. For
example, data must be added at the head of the loaded image to tell U-Boot about the
image (in other words, whether it's a kernel or ramfs) and how to load the image (in other
words, load/execute address). Before loading any image into RAM by U-Boot, you need
a tool to add this information and generate a new image which can be recognized by UBoot. The tool is delivered together with U-Boot. After you set up U-Boot using the steps
outlined above, find the tool (mkimage) under tools/. The process of using mkimage to
generate an image (for example, kernel image and ramfs image), which is to be loaded by
U-Boot, is outlined in the subsequent sections of this document.
Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
8

NXP Semiconductors

Building the Android platform for i.MX

3.4 Building a kernel image
Kernel image is automatically built when building the Android root file system.
The following are the default Android build commands to build the kernel image:
$ export PATH=${MY_ANDROID}/bootable/bootloader/uboot-imx/tools:$PATH
$ cd ${MY_ANDROID}/vendor/nxp-opensource/kernel_imx
$ echo $ARCH && echo $CROSS_COMPILE

Make sure that you have those two environment variables set. If the two variables are not set, set them as follows:
$ export ARCH=arm
$ export CROSS_COMPILE=${MY_ANDROID}/prebuilts/gcc/linux-x86/arm/arm-linuxandroideabi-4.9/bin/arm-linux-androideabi# Generate ".config" according to default config file under arch/arm/configs.
# To build the kernel image for i.MX 6Dual/Quad, 6QuadPlus, 6DualLite, 6Solo, 6SoloLite,
6SoloX, and 7Dual
$ make imx_v7_android_defconfig
$ make KCFLAGS=-mno-android
# To build the kernel uImage for i.MX 6Dual/Quad, 6QuadPlus, 6DualLite, and 6Solo
$ make uImage LOADADDR=0x10008000 KCFLAGS=-mno-android
# To build the kernel uImage for i.MX 6SoloLite
$ make uImage LOADADDR=0x80008000 KCFLAGS=-mno-android
# To build the kernel uImage for i.MX 6SoloX
$ make uImage LOADADDR=0x80008000 KCFLAGS=-mno-android
# To build the kernel uImage for i.MX 7Dual
$ make uImage LOADADDR=0x80008000 KCFLAGS=-mno-android
#
#
$
$

To build the zImage that is used in MFGTOOL
zImage is under mfgtools\Profiles\Linux\OS Firmware\firmware\
make imx_v7_mfg_defconfig
make KCFLAGS=-mno-android -j4

The kernel images are found in the folders: ${MY_ANDROID}/vendor/nxp-opensource/kernel_imx/arch/arm/boot/zImage
and ${MY_ANDROID}/vendor/nxp-opensource/kernel_imx/arch/arm/boot/uImage.

3.5 Building boot.img
boot.img and boota are default booting command and image.
As outlined in Running the Android Platform with a Prebuilt Image, we use boota as the default image to boot, not the
uramdisk and uImage we used before.
Use this command to generate boot.img under Android environment:
#
$
$
$
$

Boot image for the i.MX 6Dual/6Quad SABRE-SD board
cd ${MY_ANDROID}
source build/envsetup.sh
lunch sabresd_6dq-userdebug
make bootimage

#
$
$
$

Boot image for the i.MX 6Dual/6Quad/6QuadPlus SABRE-AI board
source build/envsetup.sh
lunch sabreauto_6q-userdebug
make bootimage

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

9

Running the Android Platform with a Prebuilt Image
#
$
$
$

Boot image for the i.MX 6SoloLite EVK board
source build/envsetup.sh
lunch evk_6sl-userdebug
make bootimage

#
$
$
$

Boot image for the i.MX 6SoloX SABRE-SD board
source build/envsetup.sh
lunch sabresd_6sx-userdebug
make bootimage

#
$
$
$

Boot image for the i.MX 6SoloX SABRE-AI board
source build/envsetup.sh
lunch sabreauto_6sx-userdebug
make bootimage

#
$
$
$

Boot image for i.MX 7Dual SABRE-SD board
source build/envsetup.sh
lunch sabresd_7d-userdebug
make bootimage

4 Running the Android Platform with a Prebuilt Image
To test the Android platform before building any code, use the prebuilt images from the following packages and go to
"Download Images" and "Boot".

Table 7. Image packages
Image package

Description

android_O8.0.0_1.0.0_image_6qsabresd.tar.gz Prebuilt image for i.MX 6Dual/6Quad, i.MX 6QuadPlus, and i.MX 6DualLite
SABRE-SD board, which includes extended features.
android_O8.0.0_1.0.0_image_6qsabreauto.tar. Prebuilt image for i.MX 6Dual/6Quad, i.MX 6QuadPlus, and i.MX 6DualLite/
gz
Solo SABRE-AI board, which includes extended features.
android_O8.0.0_1.0.0_image_6slevk.tar.gz

Prebuilt image for the i.MX 6SoloLite EVK board, which includes extended
features.

android_O8.0.0_1.0.0_image_6sxsabresd.tar.g Prebuilt image for the i.MX 6SoloX SABRE-SD board, which includes
z
extended features.
android_O8.0.0_1.0.0_image_6sxsabreauto.tar Prebuilt image for i.MX 6SoloX SABRE-AI board, which includes extended
.gz
features.
android_O8.0.0_1.0.0_image_7dsabresd.tar.gz Prebuilt image for i.MX 7Dual SABRE-SD board, which includes extended
features.

The following tables list the detailed contents of android_O8.0.0_1.0.0_image_6qsabresd.tar.gz image packages.
The table below shows the prebuilt images to support the system boot from eMMC and SD cards on the i.MX 6Dual/6Quad
SABRE-SD board and platform and i.MX 6Solo/6DualLite SABRE-SD platform.

Table 8. Images for i.MX 6 SABRE-SD board and platform eMMC boot
SABRE-SD eMMC image

Description

/u-boot-imx6q.imx

The bootloader (with padding) for 800 MHz or 1 GHz i.MX
6Dual/6Quad SABRE-SD board

/u-boot-imx6dl.imx

The bootloader (with padding) for i.MX 6Solo/6DualLite
SABRE-SD board
Table continues on the next page...

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
10

NXP Semiconductors

Running the Android Platform with a Prebuilt Image

Table 8. Images for i.MX 6 SABRE-SD board and platform eMMC boot (continued)
/u-boot-imx6q-ldo.imx

The bootloader (with padding) for 1.2 GHZ i.MX6Dual/6Quad
SABRE-SD board

/u-boot-imx6qp.imx

The bootloader (with padding) for i.MX 6Solo/6DualLite
SABRE-SD board

/u-boot-imx6qp-ldo.imx

The bootloader (with padding) for 1.2 GHZ i.MX6QuadPlus
SABRE-SD board

/partition-table.img

GPT table Image for 8 GB SD card

/partition-table-14GB.img

GPT table Image for 16 GB SD card

/partition-table-28GB.img

GPT table Image for 32 GB SD card

/boot-imx6dl.img

Boot Image for i.MX 6QuadPlus SABRE-SD board

/boot-imx6q.img

Boot Image for 800 MHz or 1 GHz i.MX 6Dual/6Quad
SABRE-SD board

/boot-imx6q-ldo.img

Boot Image for 1.2 GHZ i.MX 6Dual/6Quad SABRE-SD board

/boot-imx6qp.img

Boot Image for i.MX 6QuadPlus SABRE-SD board

/boot-imx6qp-ldo.img

Boot Image for 1.2 GHZ i.MX 6QuadPlus SABRE-SD board

/system.img

System Boot Image

/recovery-imx6dl.img

Recovery Image for i.MX 6Solo/6DualLite SABRE-SD board

/recovery-imx6q.img

Recovery Image for 800 MHz or 1 GHz i.MX 6Dual/6Quad
SABRE-SD board

/recovery-imx6q-ldo.img

Recovery Image for 1.2 GHZ i.MX 6Dual/6Quad SABRE-SD
board

/recovery-imx6qp.img

Recovery Image for i.MX 6QuadPlus SABRE-SD board

/recovery-imx6qp-ldo.img

Recovery Image for 1.2 G Hz i.MX 6QuadPlus SABRE-SD
board

/vendor.img

Vendor Image

The following tables list the detailed contents of android_O8.0.0_1.0.0_image_6qsabreauto.tar.gz image packages.
The table below shows the prebuilt images to support the system boot from SD on the i.MX 6Dual/6Quad, i.MX 6QuadPlus,
and i.MX 6Solo/6DualLite SABRE-AI boards.

Table 9. Images for i.MX 6 SABRE-AI SD boot
SABRE-AI SD image

Description

/u-boot-imx6q.imx

Bootloader (with padding) for i.MX 6Dual/6Quad SABRE-AI
SD boot

/u-boot-imx6dl.imx

Bootloader (with padding) for i.MX 6Solo/6DualLite SABRE-AI
SD boot

/u-boot-imx6qp.imx

Bootloader (with padding) for i.MX 6QuadPlus SABRE-AI SD
boot

/partition-table.img

GPT table image for 8 GB SD card

/partition-table-14GB.img

GPT table Image for 16 GB SD card

/partition-table-28GB.img

GPT table Image for 32 GB SD card

/boot-imx6q.img

Boot Image for SD

/boot-imx6dl.img
Table continues on the next page...

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

11

Running the Android Platform with a Prebuilt Image

Table 9. Images for i.MX 6 SABRE-AI SD boot (continued)
/boot-imx6qp.img
/system.img

System Boot Image

/recovery-imx6q.img

Recovery Image

/recovery-imx6dl.img
/recovery-imx6qp.img
/vendor.img

Vendor Image

The following tables list the detailed contents of android_O8.0.0_1.0.0_image_6slevk.tar.gz image package.
The table below shows the prebuilt images to support the system boot from SD on the i.MX 6SoloLite EVK board.

Table 10. Images for i.MX 6SoloLite EVK SD boot
EVK SD image

Description

/u-boot-imx6sl.imx

Bootloader (with padding) for the i.MX 6SoloLite EVK board

/partition-table.img

GPT table image for 8 GB SD card

/partition-table-14GB.img

GPT table Image for 16 GB SD card

/partition-table-28GB.img

GPT table Image for 32 GB SD card

/boot-imx6sl.img

Boot image for SD

/system.img

System boot image

/recovery-imx6sl.img

Recovery image

/vendor.img

Vendor Image

The following tables list the detailed contents of the android_O8.0.0_1.0.0_image_6sxsabresd.tar.gz image package.
The table below shows the prebuilt images to support the system boot from SD on the i.MX 6SoloX SABRE-SD board.

Table 11. Images for i.MX 6SoloX SABRE-SD SD boot
i.MX 6SoloX SABRE-SD SD image

Description

/u-boot-imx6sx.imx

Bootloader (with padding) for the i.MX 6SoloX SABRE-SD
board

/partition-table.img

GPT table image for 8 GB SD card

/partition-table-14GB.img

GPT table Image for 16 GB SD card

/partition-table-28GB.img

GPT table Image for 32 GB SD card

/boot-imx6sx.img

Boot image for the i.MX 6SoloX SABRE-SD board

/system.img

System boot image

/recovery-imx6sx.img

Recovery image for the i.MX 6SoloX SABRE-SD board

/vendor.img

Vendor Image

The following tables list the detailed contents of android_O8.0.0_1.0.0_image_6sxsabreauto.tar.gz image packages.

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
12

NXP Semiconductors

Programming Images

The table below shows the prebuilt images to support the system boot from SD on the i.MX 6SoloX SABRE-AI boards.

Table 12. Images for i.MX 6SoloX SABRE-AI SD
i.MX 6SoloX SABRE-AI SD image

Description

/u-boot-imx6sx.imx

Bootloader (with padding) for i.MX 6SoloX SABRE-AI SD
boot.

/partition-table.img

GPT table image for 8 GB SD card

/partition-table-14GB.img

GPT table Image for 16 GB SD card

/partition-table-28GB.img

GPT table Image for 32 GB SD card

/boot-imx6sx.img

Boot image for SD.

/system.img

System boot Image.

/recovery-imx6sx.img

Recovery image.

/vendor.img

Vendor Image

The following table lists the detailed contents of android_O8.0.0_1.0.0_image_7dsabresd.tar.gz image package.
The table below shows the prebuilt images to support the system boot from SD on i.MX 7Daul SABRE-SD boards.

Table 13. Images for i.MX 7Dual SABRE-SD SD boot
i.MX 7Dual SABRE-SD SD image

Description

/u-boot-imx7d.imx

Bootloader (with padding) for the i.MX 7Dual SABRE-SD board

/partition-table.img

GPT table image for 8 GB SD card

/partition-table-14GB.img

GPT table Image for 16 GB SD card

/partition-table-28GB.img

GPT table Image for 32 GB SD card

/boot-imx7d.img

Boot image for the i.MX 7Dual SABRE-SD board

/system.img

System boot image

/recovery-imx7d.img

Recovery image for the i.MX 7Dual SABRE-SD board

/vendor.img

Vendor Image

NOTE
boot.img is an Android image that stores zImage and ramdisk together. It also stores
other information such as the kernel boot command line, machine name.
This information can be configured in android.mk. It is used to override any bootloader
default boot arguments without changing it in the bootloader source code.

5 Programming Images
The images from the prebuilt release package or created from source code contain the U-Boot boot loader, system image, and
recovery image. At a minium, the storage devices on the development system (MMC/SD or NAND) must be programmed
with the U-Boot boot loader. The i.MX 6 series boot process determines what 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. For U-Boot environment settings, see Section Booting.
The following download methods can be used to write the Android System Image:
• MFGTool or fsl-sdcard-partition.sh to download all images to MMC/SD card.
Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

13

Programming Images

5.1 System on MMC/SD
The images needed to create an Android system on MMC/SD can either be obtained from the release package or be built
from source.
The images needed to create an Android system on MMC/SD are listed below:
•
•
•
•
•
•

U-Boot image: u-boot.imx
boot image: boot.img
Android system image: system.img
Recovery image: recovery.img
GPT table image: partition-table.img
Vendor image: vendor.img

5.1.1 Storage partitions
To create storage partitions, use MFGTool as described in the Android Quick Start Guide (AQSUG), or use format tools in
the prebuild directory.
The layout of the MMC/SD/TF card for Android system is shown below:
• [Partition type/index] which is defined in the MBR.
• [Name] is only meaningful in the Android platform. Ignore it when creating these partitions.
• [Start Offset] shows where partition is started, unit in MB.
The SYSTEM partition is used to put the built Android system image. The DATA is used to put applications' unpacked
codes/data, system configuration database, etc. In normal boot mode, the root file system is mounted from uramdisk. In
recovery mode, the root file system is mounted from the RECOVERY partition.

Table 14. Storage partitions
Partition type/index

Name

Start offset

Size

File system

Content

N/A

BOOT Loader 1 KB

1 MB - 1K

N/A

bootloader

1

Boot

1 MB

32 MB

boot.img format,
kernel + ramdisk

boot.img

2

Recovery

Follow Boot

32 MB

boot.img format,
kernel + ramdisk

recovery.img

3

SYSTEM

Follow
Recovery

1536 MB

EXT4. Mount as /
system

Android system files under /
system/ dir

4

CACHE

Follow
SYSTEM.

512 MB

EXT4. Mount as /
cache.

Android cache for image
store of OTA

5

Misc

Follow

4 MB

N/A

For recovery store
bootloader message, reserve

CACHE
6

DATAFOOTE Follow Misc
R

2 MB

N/A

For crypto footer of DATA
partition encryption

7

METADATA

Follow
Dtafootor

2 MB

N/A

For system slide show

8

PRESISTER

Follow
Metadata

1 MB

N/A

Option to operate unlock
\unlock

Table continues on the next page...

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
14

NXP Semiconductors

Booting

Table 14. Storage partitions (continued)
Partition type/index

Name

Start offset

Size

File system

Content

9

VENDOR

Follow
PRESISTER

112 MB

EXT4. Mount as /
vendor

vendor.img

10

DATA

Follow
VENDOR

Total - Other
images

EXT4. Mount at /data Application data storage for
system application, and for
internal media partition,
in /mnt/sdcard/ dir

11

FBMISC

Follow Data

1 MB

N/A

To store the state of lock
\unlock

To create these partitions, use MFGTool described in the Android Quick Start Guide (AQSUG), or use script fsl-sdcardpartition.sh in the source code directory.
The script below can be used to partition an SD card as shown in the partition table above:
$ cd ${MY_ANDROID}/
$ sudo ./device/fsl/common/tools/fsl-sdcard-partition.sh -f  /dev/sdX
#  can be as imx6qp, imx6q, imx6dl, imx6sl, imx6sx and imx7d.

NOTE
• The minimum size of the SD card is 8 GB.
• If the SD card is 8 GB, use sudo ./device/fsl/common/tools/fslsdcard-partition.sh -f  /dev/sdX to flash images.
• If the SD card is 16 GB, use sudo ./device/fsl/common/tools/fslsdcard-partition.sh -f  -c 14 /dev/sdX to flash images.
• If the SD card is 32 GB, use sudo ./device/fsl/common/tools/fslsdcard-partition.sh -f  -c 28 /dev/sdX to flash images.
• /dev/sdX, the X is the disk index from 'a' to 'z'. That may be different on each
computer running Linux OS.
• Unmount all the SD card partitions before running the script.
• Put the related bootloader, boot image, system image, recovery image, GPT table
image, and vendor image in your current directory. This script requires to install the
simg2img tool on the computer. simg2img is a tool that converts the sparse system
image to raw system image on the Linux OS host computer. The android-toolsfsutils package includes the simg2img command for Ubuntu Linux OS.

5.1.2 Downloading images with MFGTool
MFGTool can be used to download all images into a target device. It is a quick and easy tool for downloading images. See
Android™ Quick Start Guide (AQSUG) for a detailed description of MFGTool.

6 Booting
This chapter describes booting from MMC/SD, TFTP and NFS.

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

15

Booting

6.1 Booting from MMC/SD
This section describes how to boot from MMC/SD on the SABRE and EVK development tool devices:
• i.MX 6DualQuad/6DualLite/6QuadPlus SABRE-SD board/platform
• i.MX 6DualQuad/6DualLite/6QuadPlus SABRE-AI board
• i.MX 6SoloLite EVK board
• i.MX 6SoloX SABRE-SD board
• i.MX 6SoloX SABRE-AI board
• i.MX 7Dual SABRE-SD board

6.1.1 Booting from MMC/SD on the i.MX 6QuadPlus/6Quad/6DualLite
SABRE-SD board
This section contains boot switch information and steps needed to bootup from MMC/SD.
The following table lists the boot switch settings for different boot methods.

Table 15. Boot switch settings
Download mode (MFGTool mode)

(SW6) 00001100 (from 1-8 bit)

eMMC 4-bit (MMC2) boot

(SW6) 11100110 (from 1-8 bit)

eMMC 8-bit (MMC2) boot

(SW6) 11010110 (from 1-8 bit)

SD2 boot

(SW6) 10000010 (from 1-8 bit)

SD3 boot

(SW6) 01000010 (from 1-8 bit)

To boot from eMMC, perform the following operations:
Change the board boot switch to eMMC 4-bit mode and make (SW6) 11100110 (from 1-8 bit). Or change (SW6) 11100110
(from 1-8 bit) for 8-bit boot mode.
The default environment in boot.img is booting from eMMC. To use the default environment in boot.img, use the following
command:
U-Boot > setenv bootargs

To clear the bootargs environment, use the following commands:
U-Boot > setenv fastboot_dev mmc2 [eMMC as fastboot deivce]
U-Boot > setenv bootcmd boota mmc2
[Load the boot.img from eMMC]
U-Boot > setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32
video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=128M androidboot.console=ttymxc0
consoleblank=0 androidboot.hardware=freescale cma=448M galcore.contiguousSize=33554432
[Optional]
U-Boot > saveenv
#[Save the environments]

NOTE
The mmcX value changes depending on the boot mode. These are the correct values:
Hardware port

U-Boot device in
software

eMMC

mmc2

SD2

mmc3

SD3

mmc1

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
16

NXP Semiconductors

Booting

bootargs env is an optional setting for boota. The boot.img includes a default bootargs,
which is used if there is no definition of the bootargs environment.
Some SoCs on SABRE-SD boards do not have MAC address fused. Therefore, to use
FEC in U-Boot, set the following environment:
U-Boot > setenv ethaddr 00:04:9f:00:ea:d3
MAC address]
U-Boot > setenv fec_addr 00:04:9f:00:ea:d3
MAC address]

#[setup the
$[setup the

To boot from the SD card, perform the following operations:
Change the board boot switch to SD3 boot: (SW6) 01000010 (from 1-8 bit). To clear the bootargs env and set up the booting
from SD card in SD slot 3, use the following command:
U-Boot > setenv fastboot_dev mmc1 [eMMC as fastboot deivce]
U-Boot > setenv bootcmd boota mmc1
[Load the boot.img from SD card]
U-Boot > setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32
video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=128M androidboot.console=ttymxc0
consoleblank=0 androidboot.hardware=freescale cma=448M galcore.contiguousSize=33554432
#[Optional]
U-Boot > saveenv
#[Save the environments]

NOTE
bootargs env is an optional setting for booti. The boot.img includes a default bootargs,
which is used if there is no definition of the bootargs environment.
Some SoCs on SABRE-SD boards do not have MAC address fused.
Therefore, to use FEC in U-Boot, set the following environment:
U-Boot > setenv ethaddr 00:04:9f:00:ea:d3
MAC address]
U-Boot > setenv fec_addr 00:04:9f:00:ea:d3
MAC address]

#[setup the
$[setup the

6.1.2 Booting from MMC/SD on the the i.MX 6Dual/Quad/DualLite/
QuadPlus SABRE-AI board
This section contains boot switch information and steps needed to bootup from MMC/SD.
The following table lists the boot switch settings for different boot methods on i.MX 6 series SABRE-AI boards.

Table 16. Boot switch settings
Download mode (MFGTool mode)

(S3) 0101 (from 1-4 bit)

SD on CPU Board

(S1) 0100100000 (from 1-10 bit)
(S2) 0010 (from 1-4 bit)
(S3) 0010 (from 1-4 bit)

To boot from SD, perform the following operations:
Change the board boot switch to (S3, S2, S1) 0010, 0010,0100100000 (from 1 bit).
The default environment in boot.img is booting from SD. To use the default environment in boot.img, use the following
command:
U-Boot > setenv bootargs

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

17

Booting

To clear the bootargs environment, use the following command:
U-Boot > setenv bootcmd boota mmc1
#[Load the boot.img from SD]
U-Boot > setenv bootargs console=ttymxc3,115200 init=/init video=mxcfb0:dev=ldb,bpp=32
video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=128M androidboot.console=ttymxc3
consoleblank=0 androidboot.hardware=freescale cma=512M #[Optional]
U-Boot > saveenv
#[Save the environments]

NOTE
bootargs environment is an optional setting for Android boot. The boot.img includes a
default bootargs, which is used if there is no definition of the bootargs environment.
Some SoCs on SABRE-AI boards do not have MAC address fused. Therefore, to use
FEC in U-Boot, set the following environment:
U-Boot > setenv ethaddr 00:04:9f:00:ea:d3
MAC address]
U-Boot > setenv fec_addr 00:04:9f:00:ea:d3
MAC address]

#[setup the
$[setup the

6.1.3 Booting from SD on the i.MX 6SoloLite EVK board
The following table lists the Boot switch settings used to control the boot storage.

Table 17. Boot switch settings
Download mode (MFGTool mode)

SW3: 01000000(from 1-8 bit) SW4: 00101100 (from 1-8 bit)
SW5: 00000000(from 1-8 bit) Boot_Mode: 10 (from 1-2 bit)

SD boot

SW3: 01000000(from 1-8 bit) SW4: 00101100 (from 1-8 bit)
SW5: 00000000(from 1-8 bit) Boot_Mode: 01 (from 1-2 bit)

To boot from SD, perform the following operations:
Change the board Boot_Mode switch to 01 (from 1-2 bit) and (SW3,4,5) 01000000 0010110000000000 (from 1-8 bit).
The default environment in boot.img is booting from SD. To use default enviroment in boot.img, use the following
command:
U-Boot > setenv bootargs

To clear the bootargs environment, use the following command:
U-Boot > setenv bootcmd boota mmc1
U-Boot > setenv bootargs console=ttymxc0,115200 init=/init androidboot.console=ttymxc0
consoleblank=0 androidboot.hardware=freescale
#[Optional]
U-Boot > saveenv
[Save the environments]

NOTE
bootargs environment is an optional setting for Android boot. The boot.img file includes
a default bootargs, which is used if there is no definition about the bootargs env.
Due to some SoCs on the EVK boards, do not fuse MAC address. Set the following
environment to use FEC in U-Boot:
U-Boot > setenv ethaddr 00:04:9f:00:ea:d3
address]
U-Boot > setenv fec_addr 00:04:9f:00:ea:d3
address]

[setup the MAC
[setup the MAC

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
18

NXP Semiconductors

Booting

6.1.4 Booting from SD on the i.MX 6SoloX SABRE-SD board
This section contains boot switch information and steps needed to bootup from SD.
The following table lists the boot switch settings used to control the boot storage.

Table 18. Boot switch settings
Download mode (MFGTool mode)

SW10: 00000000 (from 1-8 bit)
SW11: 00111000 (from 1-8 bit)
SW12: 01000000 (from 1-8 bit)
Boot_Mode: 10 (from 1-2 bit)

SD boot

SW3: 00000000 (from 1-8 bit)
SW4: 00111000 (from 1-8 bit)
SW5: 01000000 (from 1-8 bit)
Boot_Mode: 01 (from 1-2 bit)

To boot from SD, perform the following operations:
Change the board Boot_Mode switch to 01 (from 1-2 bit) and (SW10, 11, 12) 00000000 00111000 01000000 (from 1-8 bit).
The default environment in boot.img is booting from SD. To use the default environment in boot.img, use the following
command:
U-Boot > setenv bootargs

To clear the bootargs environment, use the following command:
U-Boot > setenv bootcmd boota mmc2
U-Boot > setenv bootargs console=ttymxc0,115200 init=/init androidboot.console=ttymxc0
consoleblank=0 androidboot.hardware=freescale vmalloc=128M cma=448M
galcore.contiguousSize=33554432
[Optional]
U-Boot > saveenv
[Save the environments]

NOTE
bootargs environment is an optional setting for Android boot. The boot.img file includes
a default bootargs, which is used if there is no definition about the bootargs env.
Due to some SoCs on the SABRE-SD boards, do not fuse MAC addres. Set the following
environment to use FEC in U-Boot:
U-Boot > setenv ethaddr 00:04:9f:00:ea:d3
address]
U-Boot > setenv fec_addr 00:04:9f:00:ea:d3
address]

[setup the MAC
[setup the MAC

6.1.5 Booting from SD on the i.MX 6SoloX SABRE-AI board
The following table lists the boot switch settings used to control the boot storage.

Table 19. Boot switch settings
Download mode (MFGTool mode)

SW3: 00001100 (from 1-8 bit)
Table continues on the next page...

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

19

Booting

Table 19. Boot switch settings (continued)
SW4: 01000010 (from 1-8 bit)
S1 (Boot_Mode): 0101 (from 1-4bit)
SD boot

SW3: 00001100 (from 1-8 bit)
SW4: 01000010 (from 1-8 bit)
S1 (Boot_Mode): 0010 (from 1-4bit)

To boot from SD, perform the following operations:
Change the board S1 (Boot_Mode) switch to 0010 (from 1-4bit) and (SW3, SW4) 00001100 01000010 (from 1-8 bit).
The default environment in boot.img is booting from SD. To use default env in boot.img, use the following command:
U-Boot > setenv bootargs

To clear the bootargs environment, use the following command:
U-Boot > setenv bootcmd boota mmc0
U-Boot > setenv bootargs console=ttymxc0,115200 init=/init androidboot.console=ttymxc0
consoleblank=0 androidboot.hardware=freescale vmalloc=128M cma=448M
galcore.contiguousSize=33554432 [Optional
U-Boot > saveenv
[Save the environments]

NOTE
bootargs environment is an optional setting for Android boot. The boot.img file includes
a default bootargs, which is used if there is no definition about the bootargs env.
Due to some SoCs on the SABRE-SD boards, do not fuse MAC addres. Set the following
environment to use FEC in U-Boot:
U-Boot > setenv ethaddr 00:04:9f:00:ea:d3
address]
U-Boot > setenv fec_addr 00:04:9f:00:ea:d3
address]

[setup the MAC
[setup the MAC

6.1.6 Booting from SD on the i.MX 7Dual SABRE-SD board
The following table lists the boot switch settings used to control the boot storage.

Table 20. Boot switch settings
Download mode (MFGTool mode)

SW4: 00100000 (from 1-8 bit)
Boot_Mode: 01 (from 1-2 bit)

SD boot

SW4: 00111000 (from 1-8 bit)
Boot_Mode: 10 (from 1-2 bit)

To boot from SD, perform the following operations:
Change the board Boot_Mode switch to 10 (from 1-2 bit) and SW4 00100000 (from 1-8 bit).
The default environment in boot.img is booting from SD. To use the default environment in boot.img, use the following
command:
U-Boot > setenv bootargs

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
20

NXP Semiconductors

Booting

To clear the bootargs environment, use the following command:
U-Boot > setenv bootcmd boota mmc0
U-Boot > setenv bootargs console=ttymxc0,115200 init=/init androidboot.console=ttymxc0
consoleblank=0 androidboot.hardware=freescale
[Optional]
U-Boot > saveenv
[Save the environments]

NOTE
bootargs environment is an optional setting for Android boot. The boot.img file includes
a default bootargs, which is used if there is no definition about the bootargs env.
Due to some SoCs on the SABRE-SD boards, do not fuse MAC addres. Set the following
environment to use FEC in U-Boot:
U-Boot > setenv ethaddr 00:04:9f:00:ea:d3
address]
U-Boot > setenv fec_addr 00:04:9f:00:ea:d3
address]

[setup the MAC
[setup the MAC

6.2 Boot-up configurations
This section explains the common U-Boot environments used for NFS, MMC/SD boot, and kernel command line.

6.2.1 U-Boot environment
If you do not define the bootargs environment, it uses the default bootargs inside the image.
• bootcmd is the first variable to run after U-Boot boot.
• bootargs is the kernel command line, which the bootloader passes to the kernel. As described in Kernel command line
(bootargs), bootargs environment is optional for booti. boot.img already has bootargs. If you do not define the bootargs
environment, it uses the default bootargs inside the image.
To use the default environment in boot.img, use the following command to clear the bootargs environment.
> setenv bootargs

• dhcp: get the IP address by BOOTP protocol, and load the kernel image ($bootfile env) from the TFTP server.
• booti:
booti command parses the boot.img header to get the zImage and ramdisk. It also passes the bootargs as needed (it only
passes bootargs in boot.img when it cannot find "bootargs" var in your U-Boot environment). To boot from mmcX, do
the following:
> booti mmcX

To read the boot partition (the partition store boot.img, in this instance, mmcblk0p1), the X is the MMC bus number,
which is the hardware MMC bus number, in i.MX 6Dual/6Quad SABRE-SD and i.MX 6Solo/6DualLite SABRE-SD
boards. eMMC is mmc3.
Add partition ID after mmcX.
> boota mmcX boot
#
> boota mmcX recovery

boot is default
# boot from the recovery partition

If you have read the boot.img into memory, use this command to boot from
> boota 0xXXXXXXXX

• bootm (only works in for the NFS) starts running the kernel. For other use cases, use booti command.
Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

21

Booting

6.2.2 Kernel command line (bootargs)
Depending on the different booting/usage scenarios, you may need different kernel boot parameters set for bootargs.

Table 21. Kernel boot parameters
Kernel parameter

Description

Typical value
console=ttymxc0,115200

Used when

console

Where to output
kernel log by
printk.

init

Tells kernel where init=/init
the init file is
located.

androidboot.hardware

Specifies
androidboot.hardware=freescal All use cases.
hardware name
e
for this product.
Android init
process loads the
configuration file
init.$
(androidboot.hard
ware).rc in the root
directory.

video

Tells kernel/driver
which resolution/
depth and refresh
rate should be
used, or tells
kernel/driver not to
register a
framebuffer device
for a display
device.

video=mxcfb0:dev=ldb,LDBXGA,if=RGB666,bpp=32
or

All use cases.

All use cases. "init" in the Android platform
is located in "/" instead of in "/sbin".

To specify a display framebuffer with:
video=mxcfb<0,1,2>:dev=,,if=,bpp=<1
6,32>

video=mxcfb1:dev=hdmi,
1920x1080M@60,if=RGB24,bp
p=32
or
or
video=mxcfb2:off

To disable a display device's framebuffer
register with:
video=mxcfb<0,1,2>:off

vmalloc

vmalloc virtual
range size for
kernel.

vmalloc=256M

vmalloc=

androidboot.console

The Android shell
console. It should
be the same as
console=.

androidboot.console=ttymxc0

To use the default shell job control, such as
Ctrl+C to terminate a running process, set
this for the kernel.

fec_mac

Sets up the FEC
MAC address.

fec_mac=00:04:9f:00:ea:d3

On SABRE-SD board, the SoC does not
have a MAC address fused in. To use FEC,
assign this parameter to the kernel.

cma

CMA memory size cma=448M
It is 448 MB by default.
for GPU/VPU
galcore.contiguousSize=33554
physical memory 432
allocation.

androidboot.selinux

Argument to
disable selinux
check and enable
serial input when
connecting a host

androidboot.selinux=permissiv
e

Android Oreo 8.0 CTS requirement: The
serial input should be disabled by default.
Setting this argument enables console
serial input, which violates the CTS
requirement.

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
22

NXP Semiconductors

Revision History

Table 21. Kernel boot parameters
Kernel parameter

Description

Typical value

Used when

computer to the
target board’s
USB UART port.
For details about
selinux, see
SecurityEnhanced Linux in
Android.

7 Revision History

Table 22. Revision history

Revision number
O8.0.0_1.0.0

Date
02/2018

Substantive changes
Initial release

Android™ User's Guide, Rev. O8.0.0_1.0.0, 02/2018
NXP Semiconductors

23

How to Reach Us:

Information in this document is provided solely to enable system and software

Home Page:
nxp.com

implementers to use NXP products. There are no express or implied copyright licenses

Web Support:
nxp.com/support

information in this document. NXP reserves the right to make changes without further

granted hereunder to design or fabricate any integrated circuits based on the
notice to any products herein.
NXP makes no warranty, representation, or guarantee regarding the suitability of its
products for any particular purpose, nor does NXP assume any liability arising out of
the application or use of any product or circuit, and specifically disclaims any and all
liability, including without limitation consequential or incidental damages. “Typical”
parameters that may be provided in NXP data sheets and/or specifications can and do
vary in different applications, and actual performance may vary over time. All operating
parameters, including “typicals”, must be validated for each customer application by
customerís technical experts. NXP does not convey any license under its patent rights
nor the rights of others. NXP sells products pursuant to standard terms and conditions
of sale, which can be found at the following address:
nxp.com/SalesTermsandConditions.

NXP, the NXP logo, Freescale, and the Freescale logo are trademarks of NXP B.V.
Arm, the Arm logo, and Cortex are registered trademarks of Arm Limited (or its
subsidiaries) in the EU and/or elsewhere. All other product or service names are the
property of their respective owners. All rights reserved.
© 2018 NXP B.V.

Document Number: AUG
Rev. O8.0.0_1.0.0
02/2018



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : No
Author                          : NXP Semiconductors
Create Date                     : 2018:02:27 20:50:40-06:00
Fsl Dita Plugin Version         : 20160510
Fsl Ssds Version                : 4.7.1
Keywords                        : i.MX, O8.0.0_1.0.0, Android
Modify Date                     : 2018:02:28 10:56:16+08:00
XMP Toolkit                     : Adobe XMP Core 5.4-c005 78.147326, 2012/08/23-13:03:03
Format                          : application/pdf
Creator                         : NXP Semiconductors
Title                           : Android™ User's Guide
Description                     : This document describes how to build Android Oreo 8.0 platform for the i.MX 6 and i.MX 7 series devices.
Subject                         : i.MX, O8.0.0_1.0.0, Android
Creator Tool                    : AH XSL Formatter V6.1 MR2 for Linux64 : 6.1.6.12685 (2013/09/18 10:39JST)
Metadata Date                   : 2018:02:28 10:56:16+08:00
Producer                        : Antenna House PDF Output Library 6.1.425 (Linux64); modified using iText® 5.1.3 ©2000-2011 1T3XT BVBA
Trapped                         : False
Document ID                     : uuid:eb8ab964-2d8e-43ea-bb5b-2140a6405836
Instance ID                     : uuid:47bb6444-82cb-41d6-a494-1fa9a2baeff6
Page Mode                       : UseOutlines
Page Count                      : 24
Warning                         : [Minor] Ignored duplicate Info dictionary
EXIF Metadata provided by EXIF.tools

Navigation menu