Difference between revisions of "CM-FX6: Linux: Kernel"

From Compulab Mediawiki
Jump to: navigation, search
(Git clone)
(Overview)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
The Linux kernel for CM-FX6 modules provides support for on-board peripherals and abstracts the functionality provided by the hardware.
+
The Linux kernel for the CompuLab CM-FX6 System-on-Module / Computer-on-Module provides support for on-board peripherals and abstracts the functionality provided by the hardware.
 +
<br>
 
Current support coverage is specified at [http://compulab.co.il/products/operating-systems-and-drivers-for-cm-fx6-and-sbc-fx6/ O/S support coverage map] page.
 
Current support coverage is specified at [http://compulab.co.il/products/operating-systems-and-drivers-for-cm-fx6-and-sbc-fx6/ O/S support coverage map] page.
 +
<br>
 
CompuLab provides ready-to-run binary kernel images, and source code of the modifications and additions made to the Linux kernel to work properly with CM-FX6 modules.
 
CompuLab provides ready-to-run binary kernel images, and source code of the modifications and additions made to the Linux kernel to work properly with CM-FX6 modules.
 
== Kernel command line ==
 
The Linux kernel for CM-FX6 is shipped with built-in command line parameters:
 
 
<pre>
 
console=ttymxc3,115200 root=/dev/mmcblk0p1 rootwait
 
</pre>
 
 
The default kernel command line defines primary console and root device.
 
 
Setting U-Boot {{parameter|bootargs}} environment variable overrides default kernel command line and can be used to set desired kernel parameters.
 
  
 
== Building kernel for CM-FX6 ==
 
== Building kernel for CM-FX6 ==
=== Cross-Compiler ===
+
{{Note|The instructions below assume that the {{filename|/home/development/CM-FX6}} directory has been created for CM-FX6 kernel development.}}
There are several options for cross-compilation toolchain setup.
 
You can either compile your cross-compiler or use an already built cross-compiler.
 
The cross-compiler should support the ARM embedded-application binary interface ("[http://en.wikipedia.org/wiki/Application_binary_interface#EABI EABI]")
 
* Pre-built toolchain:
 
** [http://www.codesourcery.com/sgpp/lite/arm/portal/release324 CodeSourcery]
 
* Tools for creating cross-compilers:
 
** [http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool Crosstool-ng]: Builds a cross-compiler from source. Non-distribution specific.
 
** [http://www.gentoo.org/proj/en/base/embedded/handbook/index.xml?part=1&chap=4 Crossdev]: Gentoo's cross-compiler builder. Needs Gentoo.
 
 
 
=== U-Boot mkimage tool ===
 
U-Boot {{cmd|mkimage}} utility is required in order to create kernel images that can be loaded by the CM-FX6 bootloader.
 
You can download prebuilt [[media:mkimage.tar.gz|{{cmd|mkimage}} binary]] or build it yourself:
 
<pre>
 
mkdir ~/tmp
 
cd tmp
 
wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2
 
tar -xjvf u-boot-latest.tar.bz2
 
cd u-boot-20xx.xx
 
touch include/config.{h,mk}
 
make tools
 
sudo install tools/mkimage /usr/local/bin
 
</pre>
 
 
 
 
=== Getting kernel sources ===
 
=== Getting kernel sources ===
There are two ways to get Linux kernel sources that can be used as a baseline for CM-FX6 kernel.
+
Linux git tree can be cloned or downloaded as a tarball from [http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/ Freescale public git repository].
You can create a copy of Linux git tree or download a snapshot and extract it.
 
We assume that you have created {{filename|/home/development/cm-fx6/kernel}} directory for CM-FX6 kernel development.
 
 
 
 
==== Snapshot download ====
 
==== Snapshot download ====
* Download [http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.0.35.tar.bz2 v3.0.35] snapshot with your web browser.
+
* Download [http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/snapshot/linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga.tar.bz2 linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga.tar.bz2].
* Extract the downloaded archive {{filename|linux-3.0.35.tar.bz2}}
+
* Extrace the kernel source code from the downloaded archive {{filename|linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga.tar.bz2}}
 
<pre>
 
<pre>
cd /home/development/cm-fx6/kernel
+
cd /home/development/CM-FX6
tar xvf /path/to/downloaded/linux-3.0.35.tar.bz2
+
wget http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/snapshot/linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga.tar.bz2
mv linux-3.0.35 linux-cm-fx6
+
tar -xvf linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga.tar.bz2
 +
mv linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga kernel
 
</pre>
 
</pre>
: This will create {{filename|/home/development/cm-fx6/kernel/linux-cm-fx6}} directory containing Linux kernel tree.
+
* Apply the CM-FX6 patch.
 
 
* Apply the CM-FX6 patch
 
 
<pre>
 
<pre>
cd /home/development/cm-fx6/kernel/linux-cm-fx6
+
cd /home/development/CM-FX6/kernel
patch -p1 < /path/to/cm-fx6-linux/kernel/linux-3.0.35-cm-fx6-6.patch
+
patch -p1 < /path/to/CM-FX6/kernel/linux-4.1.15-cm-fx6-8.0.patch
 
</pre>
 
</pre>
  
 
==== Git clone ====
 
==== Git clone ====
 
* Install [http://git-scm.com/ git] version control system.
 
* Install [http://git-scm.com/ git] version control system.
* Create a clone of Linux kernel tree
+
* Create a clone of the CM-FX6 Linux kernel tree
 
<pre>
 
<pre>
cd /home/development/cm-fx6/kernel
+
cd /home/development/CM-FX6/
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-cm-fx6
+
git clone git://git.freescale.com/imx/linux-2.6-imx.git
 +
mv linux-2.6-imx kernel
 +
cd /home/development/CM-FX6/kerel
 
</pre>
 
</pre>
* Create a branch for CM-FX6 development. The CM-FX6 patches are generated vs. v3.0.35 tag (839cf7a236278ae358ff12141a168c0982fa0cd9 commit) in the linux-stable tree. It is recommended to use exactly the same baseline to avoid merge conflicts.
+
 
 +
* Apply the CM-FX6 patch. Create a development branch and apply CompuLab patches.
 
<pre>
 
<pre>
git checkout -b cm-fx6-dev v3.0.35
+
git checkout -b development rel_imx_4.1.15_1.1.0_ga
</pre>
+
git am /home/development/CM-FX6/kernel/patches/*.patch
* Apply the CM-FX6 patch
 
<pre>
 
cd /home/development/cm-fx6/kernel/linux-cm-fx6
 
git apply /path/to/cm-fx6-linux/kernel/linux-3.0.35-cm-fx6-6.patch
 
 
</pre>
 
</pre>
  
Line 82: Line 45:
 
export ARCH=arm
 
export ARCH=arm
 
export CROSS_COMPILE=arm-none-linux-eabi-
 
export CROSS_COMPILE=arm-none-linux-eabi-
 +
export DTB=$(ls -al arch/arm/boot/dts | awk '(/fx6.*dts$/)&&($0=$NF)&&(gsub(/dts/,"dtb"))' ORS=" ")
 
make cm_fx6_defconfig
 
make cm_fx6_defconfig
 
make menuconfig
 
make menuconfig
make && make uImage && \
+
make zImage modules ${DTB} && INSTALL_MOD_PATH=/home/development/CM-FX6/rootfs make modules_install
    INSTALL_MOD_PATH=/home/development/cm-fx6/rootfs make modules_install
 
</pre>
 
 
 
In the example above, the Linux kernel image ({{filename|uImage}}) will be created in {{filename|/home/development/cm-fx6/kernel/linux-cm-fx6/arch/arm/boot}}, and the loadable kernel modules will be installed into the {{filename|/home/development/cm-fx6/rootfs/lib/modules}} directory.
 
 
 
When the CM-FX6 is booted with the kernel image created as described above and with networked root filesystem at {{filename|/home/development/cm-fx6/rootfs/}}, the system will be able to load the kernel modules properly, thus avoiding module version problems.
 
 
 
== Basic platform support ==
 
The CM-FX6 basic platform support is implemented in the {{filename|arch/arm/mach-mx6/board-cm-fx6.c}} file of Linux kernel source tree.
 
This file includes default setup of multi-functional pins, registration of the devices integrated in the CM-FX6 module and definitions of platform-specific configuration for these devices.
 
 
 
=== LCD, DVI, HDMI and LVDS support ===
 
 
 
CM-FX6 module can be used with four display interfaces: LCD or DVI, HDMI and LVDS.
 
CM-FX6 Evaluation Kit is equipped with the DataImage SCF0403 LCD touch panel and it is used as the default video output device.
 
Both LCD and DVI are sharing the same display interface (DI0) and therefore only one of them can be used at the same time.
 
HDMI and LVDS use other display interfaces and therefore can be used at the same time with each other and with either DVI or LCD interfaces.
 
 
 
==== Image Processing Unit (IPU) ====
 
 
 
In the kernel configuration menu choose '''Device Drivers ---> MXC support drivers''' submenu and enable:
 
 
 
* Image Processing Unit Driver
 
 
 
<pre>
 
┌──────────────────────────────── Graphics support ──────────────────────────────┐
 
│ ┌────^(-)────────────────────────────────────────────────────────────────────┐ │
 
│ │    [*] Image Processing Unit Driver                                        │ │
 
│ │        MXC SSI support  --->                                              │ │
 
│ │        MXC Digital Audio Multiplexer support  --->                        │ │
 
│ │        MXC PMIC support  --->                                              │ │
 
│ └────v(+)────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
  
==== Parallel LCD interface ====
+
In the example above:
 +
* Linux kernel image ({{filename|zImage}}) will be created in {{filename|/home/development/CM-FX6/kernel/arch/arm/boot}}
 +
* device tree blobs will be created in {{filename|/home/development/CM-FX6/kernel/arch/arm/boot/dts}}
 +
* loadable kernel modules will be installed into the {{filename|/home/development/CM-FX6/rootfs/lib/modules}} directory.
  
In the kernel configuration menu choose '''Device Drivers ---> Graphics support''' submenu and enable:
+
When the CM-FX6 is booted with the kernel image created as described above and with networked root filesystem at {{filename|/home/development/CM-FX6/rootfs/}}, the system will be able to load the kernel modules properly, thus avoiding module version problems.
  
* MXC Framebuffer support
+
==== zImage, DTB files and modules locations  ====
** MXC EDID support
 
** Synchronous Panel Framebuffer
 
  
 +
* In the example above, the Linux kernel image ({{filename|zImage}}) will be created in the {{filename|/home/development/CM-FX6/kernel/arch/arm/boot}} directory.
 
<pre>
 
<pre>
┌──────────────────────────────── Graphics support ──────────────────────────────┐
+
ls -al /home/development/CM-FX6/kernel/arch/arm/boot/zImage
│ ┌────^(-)────────────────────────────────────────────────────────────────────┐ │
 
│ │    <*> Lowlevel video output switch controls                              │ │
 
│ │    <*> Support for frame buffer devices  --->                              │ │
 
│ │    [*] Backlight & LCD device support  --->                                │ │
 
│ │        Display device support  --->                                        │ │
 
│ │    <*> MXC Framebuffer support                                            │ │
 
│ │    <*>  MXC EDID support                                                  │ │
 
│ │    <*>  Synchronous Panel Framebuffer                                    │ │
 
│ └────v(+)────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
 
+
* DTB files
===== Startek KD050 / Hannstar HSD050 LCD output =====
 
 
 
Since the Startek KD050 / Hannstar HSD050 LCD is the default video output device, neither compile settings, nor special kernel command line arguments required.
 
 
 
===== DataImage SCF0403 LCD output =====
 
 
 
In the kernel configuration menu choose '''Device Drivers ---> Graphics support ---> Backlight & LCD device support''' submenu and enable:
 
 
 
* DataImage SCF0403 LCD Panels support
 
 
 
 
<pre>
 
<pre>
┌──────────────────────── Backlight & LCD device support ────────────────────────┐
+
ls -al /home/development/CM-FX6/kernel/arch/arm/boot/dtb/*fx6*.dtb
│ ┌────^(-)────────────────────────────────────────────────────────────────────┐ │
 
│ │    < >    ILI Technology ILI9320 controller support                      │ │
 
│ │    < >    Toppoly TDO24M  and TDO35S LCD Panels support                  │ │
 
│ │    <*>    DataImage SCF0403 LCD Panels support                            │ │
 
│ │    < >    VGG2432A4 LCM device support                                    │ │
 
│ └────v(+)────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
 
+
* The loadable kernel modules will be installed into the {{filename|/home/development/CM-FX6/rootfs/lib/modules}} directory.
* Since DataImage is not the default LCD, there is a special kernel command line argument required:
 
 
<pre>
 
<pre>
cm_fx6_lcd=dataimage
+
ls -al /home/development/CM-FX6/rootfs/lib/modules
 
</pre>
 
</pre>
  
==== DVI ====
+
==== Kernel Version  ====
  
For the DVI interface to function properly, either LCD or DVI should be attached at the same time.<br>
+
* In the example above, the Linux kernel release version number will be saved in {{filename|/home/development/CM-FX6/kernel/include/config/kernel.release}}
The following kernel parameter must be appended to the kernel command line:
 
 
<pre>
 
<pre>
video=mxcfb0:dev=dvi,1280x800M-32@50,if=RGB32
+
cat /home/development/CM-FX6/kernel/include/config/kernel.release
 
</pre>
 
</pre>
  
==== HDMI ====
+
==== Prepare kernel and modules tarball  ====
 
 
In the kernel configuration menu choose '''Device Drivers ---> Graphics support''' submenu and enable:
 
 
 
* MXC HDMI driver support
 
  
 +
* In the example below, the Linux kernel and modules are packed into the tar archive for deploying onto the CM-FX6.
 
<pre>
 
<pre>
┌──────────────────────────────── Graphics support ──────────────────────────────┐
+
mkdir -p /home/development/CM-FX6/rootfs/boot
│ ┌────^(-)────────────────────────────────────────────────────────────────────┐ │
+
cp -v /home/development/CM-FX6/kernel/arch/arm/boot/zImage /home/development/CM-FX6/rootfs/boot/zImage-cm-fx6
│ │    < >  E-Ink Panel Framebuffer                                          │ │
+
cp -v /home/development/CM-FX6/kernel/arch/arm/boot/dtb/*fx6*.dtb /home/development/CM-FX6/rootfs/boot/
│ │    < >  SIPIX Panel Framebuffer                                          │ │
+
tar -C /home/development/CM-FX6/rootfs -czvf /home/development/CM-FX6/linux-image-CM-FX6.tar.gz .
│ │    < > Support MXC ELCDIF framebuffer                                      │ │
 
│ │    <*> MXC HDMI driver support                                            │ │
 
│ │        Console display driver support  --->                                │ │
 
│ │    [*] Bootup logo  --->                                                  │ │
 
│ └────────────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
  
In the default configuration the second frame buffer is routed to the HDMI interface. Therefore to use the HDMI on the second frame buffer, no special kernel arguments are required.
+
== Basic platform support ==
For routing the first frame buffer to the HDMI interface, the following kernel parameter must be appended to the kernel command line:
+
The CM-FX6 basic platform support is implemented in the arch/arm/boot/dts/*fx6* files of the Linux kernel source tree.
<pre>
 
video=mxcfb0:dev=hdmi,1920x1080M-32@50,if=RGB32
 
</pre>
 
 
 
==== LVDS ====
 
  
In the kernel configuration menu choose '''Device Drivers ---> Graphics support''' submenu and enable:
+
These files contain:
 +
* default setup of multi-functional pins;
 +
* registration of the devices integrated in the CM-FX6 module;
 +
* definitions of platform-specific configuration for these devices.
 +
== Deploying the CM-FX6 kernel and modules ==
  
* MXC LDB
+
Boot up the CM-FX6 computer. Copy the previously created {{filename|linux-image-CM-FX6.tar.gz}} to {{filename|/root}} directory of the CM-FX6.
  
 +
==== Mount boot partition ====
 +
* Use the below command to mount the boot partition for installing the CM-FX6 Linux kernel binary:
 
<pre>
 
<pre>
┌──────────────────────────────── Graphics support ──────────────────────────────┐
+
boot_partition=$(awk '!/nfs/ { for (i=1;i<=NF;i++) { if($i~/^root=/) { print substr($i,6,length($i)-6)"1" } } }' /proc/cmdline)
│ ┌────^(-)────────────────────────────────────────────────────────────────────┐ │
+
mount $boot_partition /boot
│ │............................................................................│ │
 
│ │    <*> MXC Framebuffer support                                            │ │
 
│ │    <*>  MXC EDID support                                                │ │
 
│ │    <*>  Synchronous Panel Framebuffer                                    │ │
 
│ │    < >    Epson VGA Panel                                                │ │
 
│ │    <*>    MXC LDB                                                        │ │
 
│ │    < >    MXC MIPI_DSI                                                  │ │
 
│ │............................................................................│ │
 
│ │    [*] Bootup logo  --->                                                  │ │
 
│ └────────────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
  
===== LVDS0 =====
+
==== Back up old kernel ====
In the default configuration the third frame buffer is routed to the LVDS0 interface. Therefore to use the LVDS0 on the third frame buffer, no special kernel arguments are required.<br>
+
* It is essential to backup the old (known to work) kernel binary.
For routing the first frame buffer to the LVDS0 interface, the following kernel parameter must be appended to the kernel command line:
 
 
<pre>
 
<pre>
video=mxcfb0:dev=ldb,1366x768M-18@60,if=RGB666
+
mkdir /boot/$(uname -r)
 +
mv /boot/uImage-cm-fx6 /boot/zImage-cm-fx6 /boot/*.dtb /boot/$(uname -r)/
 
</pre>
 
</pre>
  
===== LVDS1 =====
+
==== Installing kernel and modules ====
In the default configuration the fifth frame buffer is routed to the LVDS1 interface. Therefore to use the LVDS1 on the fifth frame buffer, no special kernel arguments are required.
+
Assuming that the {{filename|linux-image-CM-FX6.tar.gz}} tar ball has been copied to the CM-FX6 {{filename|/root}} directory.
{{Note|The LVDS1 port can't be routed to the first frame buffer using the kernel {{parameter|video}} parameter.}}
+
* Extract and install the Linux kernel binary:
 
 
=== Touchscreen controllers support ===
 
 
 
CM-FX6 Evaluation Kit has two separate touch screen controllers: Himax (HX8520-C/HX8526-A) (assembled on the DataImage LCD) and TI TSC2046 (on-board of the CM-FX6 module).
 
The Himax is a multi touch capacitive touchscreen connected to the I2C1 bus of the CM-FX6 module.
 
The TI TSC2046 is a resistive touchscreen controller conneted to the SPI1 bus of the CM-FX6 module.
 
To use the TI TSC2046 controller, the resistive touchscreen must be connected to one of the interfaces on the SB-FX6 base board.
 
 
 
==== Himax touchscreen controller ====
 
 
 
In the kernel configuration menu choose '''Device Drivers ---> Input device support ---> Touchscreens''' submenu and enable:
 
 
 
* Himax touchscreen support
 
 
 
 
<pre>
 
<pre>
┌───────────────────────────────── Touchscreens ─────────────────────────────────┐
+
tar -C / -xvf /root/linux-image-CM-FX6.tar.gz
│ ┌────^(-)────────────────────────────────────────────────────────────────────┐ │
 
│ │    < >  TSC2007 based touchscreens                                        │ │
 
│ │    < >  W90P910 touchscreen driver                                        │ │
 
│ │    <M>  Himax touchscreen support                                        │ │
 
│ │    < >  Sitronix ST1232 touchscreen controllers                          │ │
 
│ └────v(+)────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                        │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
  
==== TI TSC2046 touchscreen controller ====
+
== U-Boot Environment ==
 
+
=== Common parameters ===
In the kernel configuration menu choose '''Device Drivers ---> Input device support ---> Touchscreens''' submenu and enable:
 
 
 
* ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
 
 
 
 
<pre>
 
<pre>
┌───────────────────────────────── Touchscreens ─────────────────────────────────┐
+
setenv loadaddr 0x10800000
│ ┌────────────────────────────────────────────────────────────────────────────┐ │  
+
setenv dtbaddr 0x15000000
│ │    --- Touchscreens                                                        │ │ 
+
setenv bootm_low 0x15000000
│ │    <M>  ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens          │ │ 
+
setenv zimage zImage-cm-fx6
│ │    < >  AD7877 based touchscreens                                        │ │ 
+
setenv console console=ttymxc3,115200
│ │    < >  Analog Devices AD7879-1/AD7889-1 touchscreen interface            │ │ 
+
setenv rootopt rootfstype=ext4 rw rootwait
│ └────v(+)────────────────────────────────────────────────────────────────────┘ │ 
+
setenv netopt ip=dhcp
├────────────────────────────────────────────────────────────────────────────────┤ 
 
│                        <Select>    < Exit >    < Help >                        │ 
 
└────────────────────────────────────────────────────────────────────────────────┘ 
 
 
</pre>
 
</pre>
 
+
* SB-FX6 (Evaluation Board)
=== Analog Audio Support ===
+
In order to boot up an SB-FX6 make use of the imx6q-sbc-fx6.dtb blob file.
In the kernel configuration menu choose '''Device Drivers ---> Sound card support ---> Advanced Linux Sound Architecture ---> ALSA for SoC audio support ---> SoC Audio for Freescale i.MX CPUs''' submenu and enable:
 
* SoC Audio support for CM-FX6 boards
 
 
<pre>
 
<pre>
┌────────────────── SoC Audio for Freescale i.MX CPUs ───────────────────────────┐
+
setenv dtb imx6q-sbc-fx6.dtb
│ ┌────────────────────────────────────────────────────────────────────────────┐ │
 
│ │  --- SoC Audio for Freescale i.MX CPUs                                    │ │
 
│ │  < >  SoC Audio support for IMX boards with WM8958                      │ │
 
│ │  < >  SoC Audio support for IMX boards with WM8962                      │ │
 
│ │  <*>  SoC Audio support for CM-FX6 boards                                │ │
 
│ │  < >  SoC Audio support for IMX SI4763                                  │ │
 
│ │  <*>  SoC Audio support for IMX - S/PDIF                                │ │
 
│ │  <*>  SoC Audio support for IMX - HDMI                                  │ │
 
│ └────────────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
 
+
In order to boot up an SB-FX6m make use of the imx6q-sbc-fx6m.dtb blob file.
=== WiFi and Bluetooth ===
+
* SB-FX6m (Utilite)
<dl>
 
CM-FX6 has WiFi and Bluetooth support based on  Marvell 88W8787.
 
</dl>
 
==== WiFi ====
 
In the kernel configuration menu choose '''Device Drivers ---> Network device support ---> Wireless LAN''' submenue and enable:
 
* Marvell WiFi-Ex Driver
 
* Marvell WiFi-Ex Driver for SD8787
 
 
<pre>
 
<pre>
┌──────────────────────────────── Wireless LAN ──────────────────────────────────┐
+
setenv dtb imx6q-sbc-fx6m.dtb
│ ┌────────────────────────────────────────────────────────────────────────────┐ │
 
│ │  < >  ZyDAS ZD1211/ZD1211B USB-wireless support                          │ │
 
│ │  <M>  Marvell WiFi-Ex Driver                                            │ │
 
│ │  <M>    Marvell WiFi-Ex Driver for SD8787                                │ │
 
│ └────────────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
  
==== Bluetooth ====
+
=== SATA Boot Parameters ===
In the kernel configuration menu choose '''Networking support ---> Bluetooth subsystem support ---> Bluetooth device drivers''' submenue and enable:
 
* Marvell Bluetooth driver support
 
* Marvell BT-over-SDIO driver
 
 
<pre>
 
<pre>
┌─────────────────────── Bluetooth device drivers ───────────────────────────────┐
+
setenv satadev 0
│ ┌────────────────────────────────────────────────────────────────────────────┐ │
+
setenv rootdev root=/dev/sda2
│ │  < >  HCI VHCI (Virtual HCI device) driver                              │ │
 
│ │  <M>  Marvell Bluetooth driver support                                  │ │
 
│ │  <M>    Marvell BT-over-SDIO driver                                      │ │
 
│ │  < >  Atheros firmware download driver                                  │ │
 
│ └────────────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
  
=== USB On-The-Go (OTG) ===
+
sata init
 +
fatload sata ${satadev} ${loadaddr} ${zimage}
 +
fatload sata ${satadev} ${dtbaddr} ${dtb}
  
In the kernel configuration menu choose '''System Type ---> Freescale MXC Implementations''' submenu and enable:
+
setenv bootargs ${console} ${rootdev} ${rootopt} ${netopt}
* FSL USB OTG support
+
bootz ${loadaddr} - ${dtbaddr}
<pre>
 
┌────────────────────────────────────────────────────────────────────────────────┐
 
│ ┌────────────────────────────────────────────────────────────────────────────┐ │
 
│ │  [*] Support CompuLab CM-FX6 module                                      │ │
 
│ │              *** MX6 Options: ***                                          │ │
 
│ │  [*] PCI Express support                                                  │ │
 
│ │  <*>  USB Host 1 support                                                │ │
 
│ │  <*>  FSL USB OTG support                                                │ │
 
│ │  [ ] Internal LDO in MX6Q/DL bypass                                      │ │
 
│ │  [ ] MX6 clk setting for smooth UI transtion from bootloader to kernel    │ │
 
│ └────────────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
  
In the kernel configuration menu choose '''Device Drivers ---> USB support''' submenu and enable:
+
=== MMC Boot Parameters ===
* Support for Host-side USB
 
* EHCI HCD (USB 2.0) support
 
** Support for Freescale controller
 
* USB OTG pin detect support
 
 
<pre>
 
<pre>
┌───────────────────────────── USB support ──────────────────────────────────────┐
+
setenv mmcdev 2
│ ┌────────────────────────────────────────────────────────────────────────────┐ │
+
setenv rootdev root=/dev/mmcblk2p2
│ │  --- USB support                                                          │ │ 
 
│ │  <*>  Support for Host-side USB                                          │ │ 
 
│ │  [ ]    USB verbose debug messages                                      │ │ 
 
│ │  [ ]    USB announce new devices                                        │ │ 
 
│ │          *** Miscellaneous USB options ***                                │ │ 
 
│ │  [ ]    USB device filesystem (DEPRECATED)                              │ │ 
 
│ │  [ ]    USB device class-devices (DEPRECATED)                            │ │ 
 
│ │  [ ]    Dynamic USB minor allocation                                    │ │ 
 
│ │  [*]    USB runtime power management (autosuspend) and wakeup            │ │ 
 
│ │  -*-      OTG support                                                    │ │ 
 
│ │  .......................................................................  │ │
 
│ │  <*>  EHCI HCD (USB 2.0) support                                        │ │ 
 
│ │  [*]    Support for Freescale controller                                │ │ 
 
│ │  .......................................................................  │ │
 
│ │  <*>    USB Gadget Support  --->                                        │ │
 
│ │        *** OTG and related infrastructure ***                              │ │
 
│ │  .......................................................................  │ │
 
│ │  <*>  USB OTG pin detect support                                        │ │
 
│ └────────────────────────────────────────────────────────────────────────────┘ │
 
├────────────────────────────────────────────────────────────────────────────────┤
 
│                        <Select>    < Exit >    < Help >                      │
 
└────────────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
  
== Multi Media Support ==
+
mmc dev ${mmcdev}
 +
fatload mmc ${mmcdev} ${loadaddr} ${zimage}
 +
fatload mmc ${mmcdev} ${dtbaddr} ${dtb}
  
=== Image Processing Unit Driver ===
+
setenv bootargs ${console} ${rootdev} ${rootopt} ${netopt}
 
+
bootz ${loadaddr} - ${dtbaddr}
In the kernel configuration menu choose '''Device Drivers ---> MXC support drivers''' submenu and enable:
 
* Image Processing Unit Driver
 
<pre>
 
  ┌────────────────────────── MXC support drivers ──────────────────────────┐
 
  │ ┌─────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    [*] Image Processing Unit Driver                                │ │ 
 
  │ │        MXC SSI support  --->                                        │ │ 
 
  │ │        MXC Digital Audio Multiplexer support  --->                  │ │ 
 
  │ │        MXC PMIC support  --->                                      │ │ 
 
  │ └────v(+)─────────────────────────────────────────────────────────────┘ │ 
 
  ├─────────────────────────────────────────────────────────────────────────┤ 
 
  │                    <Select>    < Exit >    < Help >                    │ 
 
  └─────────────────────────────────────────────────────────────────────────┘
 
 
</pre>
 
</pre>
  
=== Video For Linux and Capture support ===
+
=== NFS Boot Parameters ===
 
 
In the kernel configuration menu choose '''Device Drivers ---> Multimedia support''' submenu and enable:
 
* Video For Linux
 
* Video capture adapters
 
 
<pre>
 
<pre>
  ┌────────────────────────── Multimedia support ───────────────────────────┐
+
setenv nfsserver <nfs server ip address>
  │ ┌─────────────────────────────────────────────────────────────────────┐ │ 
+
setenv tftpserver <tftp server ip address>
  │ │    --- Multimedia support                                          │ │ 
+
setenv rootdev root=/dev/nfs rw
  │ │          *** Multimedia core support ***                            │ │ 
 
  │ │    [ ]  Media Controller API (EXPERIMENTAL)                        │ │ 
 
  │ │    <*>   Video For Linux                                            │ │ 
 
  │ │    < >   DVB for Linux                                              │ │ 
 
  │ │          *** Multimedia drivers ***                                │ │ 
 
  │ │    [*]  Video capture adapters  --->                              │ │ 
 
  │ └─────────────────────────────────────────────────────────────────────┘ │ 
 
  ├─────────────────────────────────────────────────────────────────────────┤ 
 
  │                    <Select>    < Exit >    < Help >                    │ 
 
  └─────────────────────────────────────────────────────────────────────────┘ 
 
</pre>
 
  
=== MXC Video For Linux Camera ===
+
dhcp
 +
tftpboot ${loadaddr} ${tftpserver}:${zimage}
 +
tftpboot ${dtbaddr} ${tftpserver}:${dtb}
  
In the kernel configuration menu choose '''Device Drivers ---> Multimedia support ---> Video capture adapters''' submenu and enable:
+
setenv bootargs ${console} ${rootdev} nfsroot=${nfsserver}:${nfsroot} ${netopt}
* MXC Video For Linux Camera
+
bootz ${loadaddr} - ${dtbaddr}
* MXC Video For Linux Video Output
 
* IPU v4l2 support
 
<pre>
 
  ┌──────────────────────── Video capture adapters ─────────────────────────┐
 
  │ ┌────^(-)─────────────────────────────────────────────────────────────┐ │ 
 
  │ │    [ ]  Enable advanced debug functionality                        │ │ 
 
  │ │    [ ]  Enable old-style fixed minor ranges for video devices      │ │ 
 
  │ │    [ ]  Autoselect pertinent encoders/decoders and other helper chi│ │ 
 
  │ │    <*>  MXC Video For Linux Camera                                │ │ 
 
  │ │            MXC Camera/V4L2 PRP Features support  --->              │ │ 
 
  │ │    <*>  MXC Video For Linux Video Output                          │ │ 
 
  │ │    [*]    IPU v4l2 support                                        │ │ 
 
  │ │    [ ]    IPUv1 WVGA v4l2 display support                          │ │ 
 
  │ │    < >  CPiA2 Video For Linux                                      │ │ 
 
  │ └────v(+)─────────────────────────────────────────────────────────────┘ │ 
 
  ├─────────────────────────────────────────────────────────────────────────┤ 
 
  │                    <Select>    < Exit >    < Help >                    │ 
 
  └─────────────────────────────────────────────────────────────────────────┘ 
 
 
</pre>
 
</pre>
 +
== Kernel configuration ==
 +
=== System Support ===
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> System Type > Freescale i.MX family
 +
Enable:
 +
* i.MX6 Quad/DualLite support
 +
* CompuLab CM-FX6 Support
 +
  ┌──────────────────────────────────────────────── Freescale i.MX family ────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- Freescale i.MX family                                                                    │ │ 
 +
  │ │                            *** Device tree only ***                                                              │ │ 
 +
  │ │                      [ ]  i.MX50 support                                                                        │ │ 
 +
  │ │                      [ ]  i.MX51 support                                                                        │ │ 
 +
  │ │                      [*]  i.MX53 support                                                                        │ │ 
 +
  │ │                      [*]  i.MX6 Quad/DualLite support                                                            │ │ 
 +
  │ │                      [*]  i.MX6 SoloLite support                                                                │ │ 
 +
  │ │                      [ ]  i.MX6 SoloX support                                                                    │ │ 
 +
  │ │                      [ ]  i.MX6 UltraLite support                                                                │ │ 
 +
  │ │                      [ ]  i.MX7 Dual support                                                                    │ │ 
 +
  │ │                      [*]  Vybrid Family VF610 support                                                            │ │ 
 +
  │ │                              Clocksource for scheduler clock (Use ARM Global Timer)  --->                        │ │ 
 +
  │ │                      [ ]  Freescale LS1021A support                                                              │ │ 
 +
  │ │                      [*]  CompuLab CM-FX6 Support                                                                │ │ 
 +
  │ │                                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  
=== IPU CSI Config Options ===
+
=== Bus Support ===
 +
==== PCIE ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Bus support > PCI host controller drivers
 +
Enable:
 +
* Freescale i.MX6 PCIe controller
 +
  ┌───────────────────────────────────────────── PCI host controller drivers ─────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      [*] Freescale i.MX6 PCIe controller                                                          │ │ 
 +
  │ │                      [ ]  Enable pcie compliance tests on imx6                                                  │ │ 
 +
  │ │                      [ ]  PCI Express EP mode in the IMX6 RC/EP interconnection system                          │ │ 
 +
  │ │                      [ ]    PCI Express RC mode in the IMX6 RC/EP interconnection system                        │ │ 
 +
  │ │                      [ ] Generic PCI host controller                                                              │ │ 
 +
  │ │                      [ ] Freescale Layerscape PCIe controller                                                    │ │ 
 +
  │ │                      < > Broadcom iProc PCIe controller                                                          │ │ 
 +
  │ │                                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
==== I2C ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > I2C support > I2C Hardware Bus support
 +
Enable:
 +
* IMX I2C interface
 +
  ┌────────────────────────────────────────────── I2C Hardware Bus support ───────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                          *** I2C system bus drivers (mostly embedded / system-on-chip) ***                        │ │ 
 +
  │ │                      < > CBUS I2C driver                                                                          │ │ 
 +
  │ │                      < > Synopsys DesignWare Platform                                                            │ │ 
 +
  │ │                      < > Synopsys DesignWare PCI                                                                  │ │ 
 +
  │ │                      < > GPIO-based bitbanging I2C                                                                │ │ 
 +
  │ │                      <*> IMX I2C interface                                                                        │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                          *** Other I2C/SMBus bus drivers ***                                                      │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== SPI ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > SPI support
 +
Enable:
 +
*  Freescale i.MX SPI controllers
 +
  ┌───────────────────────────────────────────────────── SPI support ─────────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- SPI support                                                                              │ │ 
 +
  │ │                      [ ]  Debug support for SPI drivers                                                          │ │ 
 +
  │ │                            *** SPI Master Controller Drivers ***                                                  │ │ 
 +
  │ │                      < >  Altera SPI Controller                                                                  │ │ 
 +
  │ │                      -*-  Utilities for Bitbanging SPI masters                                                  │ │ 
 +
  │ │                      < >  Cadence SPI controller                                                                │ │ 
 +
  │ │                      < >  GPIO-based bitbanging SPI Master                                                      │ │ 
 +
  │ │                      <*>  Freescale i.MX SPI controllers                                                        │ │ 
 +
  │ │                            *** SPI Protocol Masters ***                                                          │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
==== SATA ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Serial ATA and Parallel ATA drivers (libata)
 +
Enable:
 +
* AHCI SATA support
 +
* Platform AHCI SATA support
 +
* Freescale i.MX AHCI SATA support
 +
  ┌──────────────────────────────────── Serial ATA and Parallel ATA drivers (libata) ─────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- Serial ATA and Parallel ATA drivers (libata)                                            │ │ 
 +
  │ │                      <*>  AHCI SATA support                                                                      │ │ 
 +
  │ │                      <*>  Platform AHCI SATA support                                                            │ │ 
 +
  │ │                      <*>  Freescale i.MX AHCI SATA support                                                      │ │ 
 +
  │ │                                *** SATA SFF controllers with BMDMA ***                                            │ │ 
 +
  │ │                      < >      Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support                                    │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
==== USB ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > USB support
 +
Enable:
 +
* Support for Freescale i.MX on-chip EHCI USB controller
 +
* Generic EHCI driver for a platform device
 +
  ┌───────────────────────────────────────────────────── USB support ─────────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                              *** USB Host Controller Drivers ***                                                  │ │ 
 +
  │ │                      <*>    Support for Freescale i.MX on-chip EHCI USB controller                              │ │ 
 +
  │ │                      <*>    Generic EHCI driver for a platform device                                            │ │ 
 +
  │ │...................................................................................................................│ │
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
==== MMC/SD/SDIO ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > MMC/SD/SDIO card support
 +
Enable:
 +
* Secure Digital Host Controller Interface support
 +
* SDHCI platform and OF driver helper
 +
* SDHCI support for the Freescale eSDHC/uSDHC i.MX controller
 +
  ┌────────────────────────────────────────────── MMC/SD/SDIO card support ───────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- MMC/SD/SDIO card support                                                                │ │ 
 +
  │ │...................................................................................................................│ │
 +
  │ │                      <*>  MMC block device driver                                                                │ │ 
 +
  │ │                      (8)    Number of minors per block device                                                    │ │ 
 +
  │ │                      [*]    Use bounce buffer for simple hosts                                                  │ │ 
 +
  │ │                      < >  SDIO UART/GPS class support                                                            │ │ 
 +
  │ │                      < >  MMC host test driver                                                                  │ │ 
 +
  │ │                            *** MMC/SD/SDIO Host Controller Drivers ***                                            │ │ 
 +
  │ │                      <*>  Secure Digital Host Controller Interface support                                      │ │ 
 +
  │ │                      < >    SDHCI support on PCI bus                                                            │ │ 
 +
  │ │                      <*>    SDHCI platform and OF driver helper                                                  │ │ 
 +
  │ │                      < >      SDHCI OF support for the Arasan SDHCI controllers                                  │ │ 
 +
  │ │                      <*>      SDHCI support for the Freescale eSDHC/uSDHC i.MX controller                        │ │ 
 +
  │ │...................................................................................................................│ │
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  
In the kernel configuration menu choose '''Device Drivers ---> Multimedia support ---> Video capture adapters ---> MXC Video For Linux Camera ---> MXC Camera/V4L2 PRP Features support''' submenu and enable:
+
=== NetWork ===
* CSI camera support
+
==== CAN ====
* Select Overlay Rounting
+
make menuconfig
* Pre-processor Encoder library
+
.config - Linux/arm 4.1.15 Kernel Configuration
**  Preprocessing image from smart sensor for encoder. CSI -> IC (PRP ENC) -> MEM
+
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
* IPU CSI Encoder library
+
> Networking support > CAN bus subsystem support > CAN Device Drivers
**  Get raw image with CSI from smart sensor for encoder. CSI --> MEM
+
Enable:
<pre>
+
* Support for Freescale FLEXCAN based chips
   ┌───────────────── MXC Camera/V4L2 PRP Features support ──────────────────┐
+
  ┌───────────────────────────────────────────────── CAN Device Drivers ──────────────────────────────────────────────────┐
   │ ┌─────────────────────────────────────────────────────────────────────┐ │   
+
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
   │ │   <*> CSI camera support                                          │ │   
+
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
   │ │   <*> Select Overlay Rounting (Queue ipu device for overlay library│ │   
+
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
   │ │   <*> Pre-processor Encoder library                               │ │   
+
  │                                                                                                                      │ 
   │ │   <*> IPU CSI Encoder library                                     │ │   
+
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
   │ └─────────────────────────────────────────────────────────────────────┘ │   
+
  │ │                      < > Virtual Local CAN Interface (vcan)                                                      │ │ 
   ├─────────────────────────────────────────────────────────────────────────┤  
+
  │ │...................................................................................................................│ │
   │                   <Select>    < Exit >    < Help >                     │   
+
  │ │                      <*>  Support for Freescale FLEXCAN based chips                                              │ │ 
   └─────────────────────────────────────────────────────────────────────────┘
+
  │ │...................................................................................................................│ │
</pre>
+
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
==== FEC/IGB ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Network device support > Ethernet driver support
 +
Enable:
 +
* Freescale devices
 +
* FEC ethernet controller (of ColdFire and some i.MX CPUs)
 +
* Intel devices
 +
* Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support
 +
  ┌─────────────────────────────────────────────── Ethernet driver support ───────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      [ ]  Faraday devices                                                                        │ │ 
 +
  │ │                      [*]  Freescale devices                                                                      │ │ 
 +
  │ │                      <*>    FEC ethernet controller (of ColdFire and some i.MX CPUs)                            │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      [*]  Intel devices                                                                          │ │ 
 +
  │ │                      < >    Intel(R) PRO/100+ support                                                            │ │ 
 +
  │ │                      < >    Intel(R) PRO/1000 Gigabit Ethernet support                                          │ │ 
 +
  │ │                      < >    Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support                              │ │ 
 +
  │ │                      <M>    Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support                            │ │ 
 +
  │ │...................................................................................................................│ │
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== WiFi ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Network device support > Wireless LAN
 +
Enable:
 +
* Marvell WiFi-Ex Driver
 +
* Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897
 +
  ┌──────────────────────────────────────────────────── Wireless LAN ─────────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      < >  ZyDAS ZD1211/ZD1211B USB-wireless support                                              │ │ 
 +
  │ │                      <M>  Marvell WiFi-Ex Driver                                                                │ │ 
 +
  │ │                      <M>    Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897                        │ │ 
 +
  │ │                      < >     Marvell WiFi-Ex Driver for PCIE 8766/8897                                            │ │ 
 +
  │ │...................................................................................................................│ │
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
==== Bluetooth ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Networking support > Bluetooth subsystem support > Bluetooth device drivers
 +
Enable:
 +
* Marvell Bluetooth driver support
 +
* Marvell BT-over-SDIO driver
 +
  ┌────────────────────────────────────────────── Bluetooth device drivers ───────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      < > HCI USB driver                                                                          │ │ 
 +
  │ │                      < > HCI SDIO driver                                                                          │ │ 
 +
  │ │                      < > HCI UART driver                                                                          │ │ 
 +
  │ │                      < > HCI BCM203x USB driver                                                                  │ │ 
 +
  │ │                      < > HCI BPA10x USB driver                                                                    │ │ 
 +
  │ │                      < > HCI BlueFRITZ! USB driver                                                                │ │ 
 +
  │ │                      < > HCI VHCI (Virtual HCI device) driver                                                    │ │ 
 +
  │ │                      <M> Marvell Bluetooth driver support                                                        │ │ 
 +
  │ │                      <M>  Marvell BT-over-SDIO driver                                                            │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
=== Multimedia ===
 +
==== IPU ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > MXC support drivers
 +
Enable:
 +
* Image Processing Unit Driver
 +
  ┌───────────────────────────────────────────────── MXC support drivers ─────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      [*] Image Processing Unit Driver                                                            │ │ 
 +
  │ │                          MXC Media Local Bus Driver  --->                                                        │ │ 
 +
  │ │                      < > i.MX IPUv3 prefetch engine                                                              │ │ 
 +
  │ │                          MXC Vivante GPU support --->                                                            │ │ 
 +
  │ │                          MXC SIM Support  --->                                                                    │ │ 
 +
  │ │                          MXC MIPI Support  --->                                                                   │ │ 
 +
  │ │                          MXC VPU(Video Processing Unit) support  --->                                             │ │ 
 +
  │ │                          MXC HDMI CEC (Consumer Electronics Control) support  --->                                │ │ 
 +
  │ │                                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== GPU ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > MXC support drivers > MXC Vivante GPU support
 +
Enable:
 +
* MXC Vivante GPU support
 +
  ┌─────────────────────────────────────────────── MXC Vivante GPU support ───────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      <M> MXC Vivante GPU support                                                                  │ │ 
 +
  │ │                                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== VPU ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > MXC support drivers > MXC VPU(Video Processing Unit) support
 +
Enable:
 +
* Support for MXC VPU(Video Processing Unit)
 +
  ┌─────────────────────────────────────── MXC VPU(Video Processing Unit) support ────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      <*> Support for MXC VPU(Video Processing Unit)                                              │ │ 
 +
  │ │                      [ ]  MXC VPU debugging                                                                      │ │ 
 +
  │ │                      [ ]  MX6 VPU 352M                                                                          │ │ 
 +
  │ │                                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== Frame buffer Devices ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Graphics support > Frame buffer Devices
 +
Enable:
 +
* MXC Framebuffer support
 +
* Synchronous Panel Framebuffer
 +
* MXC MIPI_DSI
 +
* TRULY WVGA Panel
 +
* MXC LDB
 +
* MXC HDMI driver support
 +
* MXC EDID support
 +
* Hannstar CABC function
 +
  ┌──────────────────────────────────────────────── Frame buffer Devices ─────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌──────────────────────^(-)─────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      < > AUO-K190X EPD controller support                                                        │ │ 
 +
  │ │                      <*> MXS LCD framebuffer support                                                              │ │ 
 +
  │ │                      [ ] Simple framebuffer support                                                              │ │ 
 +
  │ │                      <*> MXC Framebuffer support                                                                  │ │ 
 +
  │ │                      <*>  Synchronous Panel Framebuffer                                                          │ │ 
 +
  │ │                      <*>    MXC MIPI_DSI                                                                        │ │ 
 +
  │ │                      < >    MXC MIPI_DSI_SAMSUNG                                                                │ │ 
 +
  │ │                      <*>    TRULY WVGA Panel                                                                    │ │ 
 +
  │ │                      <*>    MXC LDB                                                                              │ │ 
 +
  │ │                      <*>    MXC HDMI driver support                                                              │ │ 
 +
  │ │                      <*>  MXC EDID support                                                                      │ │ 
 +
  │ │                      <*> Si Image SII9022 DVI/HDMI Interface Chip                                                │ │ 
 +
  │ │                      < > MXC DCIC                                                                                │ │ 
 +
  │ │                      <*> Hannstar CABC function                                                                  │ │ 
 +
  │ │                      <*> E-Ink Panel Framebuffer                                                                  │ │ 
 +
  │ │                      < > E-Ink Panel Framebuffer based on EPDC V2                                                │ │ 
 +
  │ │                      [ ] E-Ink Auto-update Mode Support                                                          │ │ 
 +
  │ │                      < > Solomon SSD1307 framebuffer support                                                      │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== Audio ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Sound card support > Advanced Linux Sound Architecture > ALSA for SoC audio support > SoC Audio for Freescale CPUs
 +
Enable:
 +
* SoC Audio support for i.MX boards with S/PDIF
 +
* SoC Audio support for i.MX boards with HDMI port
 +
* SoC Audio support for i.MX boards with WM8731
 +
  ┌──────────────────────────────────────────── SoC Audio for Freescale CPUs ─────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                          *** Common SoC Audio options for Freescale CPUs: ***                                     │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      <*> SoC Audio support for i.MX boards with S/PDIF                                            │ │ 
 +
  │ │                      <*> SoC Audio support for i.MX boards with HDMI port                                        │ │  
 +
  │ │                      <*> SoC Audio support for i.MX boards with WM8731                                            │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
==== MXC MIPI ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > MXC support drivers > MXC MIPI Support
 +
Enable:
 +
* MIPI CSI2 support
 +
  ┌────────────────────────────────────────────────── MXC MIPI Support ───────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search. Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      <*> MIPI CSI2 support                                                                        │ │ 
 +
   │ │                                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== MIPI Camera ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Multimedia support > V4L platform devices > MXC Camera/V4L2 PRP Features support
 +
Enable:
 +
* OmniVision ov5640 camera support using mipi
 +
  ┌──────────────────────────────────────── MXC Camera/V4L2 PRP Features support ─────────────────────────────────────────┐
 +
   │ Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │   
 +
   │ hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      <M> OmniVision ov5640 camera support                                                        │ │ 
 +
  │ │                      <M> OmniVision ov5642 camera support                                                        │ │ 
 +
  │ │                      <M> OmniVision ov5640 camera support using mipi                                              │ │ 
 +
  │ │                      <M> Analog Device adv7180 TV Decoder Input support                                          │ │   
 +
   │ │                     <*> Select Overlay Rounting (Queue ipu device for overlay library)  --->                    │ │   
 +
   │ │                     <*> Pre-processor Encoder library                                                           │ │   
 +
   │ │                     <*> IPU CSI Encoder library                                                                 │ │ 
 +
  │ │                                                                                                                  │ │   
 +
   │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │   
 +
   ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 +
   │                               <Select>    < Exit >    < Help >   < Save >    < Load >                                │   
 +
   └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  
 +
=== Input Device ===
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Input device support > Touchscreens
 +
Enable:
 +
* ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
 +
  ┌──────────────────────────────────────────────────── Touchscreens ─────────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- Touchscreens                                                                            │ │ 
 +
  │ │                      <M>  ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens                                │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
=== OTG ===
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > USB support
 +
Enable:
 +
* OTG support
 +
  ┌───────────────────────────────────────────────────── USB support ─────────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- USB support                                                                              │ │ 
 +
  │ │                      <*>  Support for Host-side USB                                                              │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      [*]    OTG support                                                                          │ │ 
 +
  │ │                      [ ]    Rely on OTG and EH Targeted Peripherals List                                        │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
 +
==== USB Gadget Support ====
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > USB support > USB Gadget Support
 +
Enable:
 +
* USB Gadget Drivers
 +
* Audio Gadget
 +
* UAC 1.0 (Legacy)
 +
* Ethernet Gadget (with CDC Ethernet support)
 +
* Mass Storage Gadget
 +
* Serial Gadget (with CDC ACM and CDC OBEX support)
 +
  ┌───────────────────────────────────────────────── USB Gadget Support ──────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- USB Gadget Support                                                                      │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      <M>  USB Gadget Drivers                                                                    │ │ 
 +
  │ │                      <M>    Audio Gadget                                                                        │ │ 
 +
  │ │                      [*]      UAC 1.0 (Legacy)                                                                  │ │ 
 +
  │ │                      <M>    Ethernet Gadget (with CDC Ethernet support)                                          │ │ 
 +
  │ │                      <M>    Mass Storage Gadget                                                                  │ │ 
 +
  │ │                      <M>    Serial Gadget (with CDC ACM and CDC OBEX support)                                    │ │   
 +
  │ │...................................................................................................................│ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 
  
 +
=== Serial Console ===
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Character devices > Serial drivers
 +
Enable:
 +
* IMX serial port support
 +
* Console on IMX serial port
 +
  ┌─────────────────────────────────────────────────── Serial drivers ────────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      < > MAX310X support                                                                          │ │ 
 +
  │ │                      <*> IMX serial port support                                                                  │ │ 
 +
  │ │                      [*]  Console on IMX serial port                                                            │ │ 
 +
  │ │                      < > Digi International NEO and Classic PCI Support                                          │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 +
=== LED ===
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > LED Support > LED Trigger support
 +
Enable:
 +
* LED Heartbeat Trigger
 +
  ┌───────────────────────────────────────────────── LED Trigger support ─────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │                      --- LED Trigger support                                                                      │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      <*>  LED Heartbeat Trigger                                                                  │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  
=== TVP5150 video decoder  ===
+
=== RTC ===
 +
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Device Drivers > Real Time Clock
 +
* EM Microelectronic EM3027
 +
  ┌─────────────────────────────────────────────────── Real Time Clock ───────────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │ 
 +
  │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │ 
 +
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │ 
 +
  │                                                                                                                      │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ │                      <*>  EM Microelectronic EM3027                                                              │ │ 
 +
  │ │...................................................................................................................│ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                              <Select>    < Exit >    < Help >    < Save >    < Load >                                │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
  
In the kernel configuration menu choose '''Device Drivers ---> Multimedia support ---> Video capture adapters ---> Encoders, decoders, sensors and other helper chips''' submenu and enable:
+
=== CMDLINE ===
* Texas Instruments TVP5150 video decoder
+
make menuconfig
 +
.config - Linux/arm 4.1.15 Kernel Configuration
 +
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 +
> Boot options
 +
* Edit CONFIG_CMDLINE
 +
{{Note|The latest release procedure deploys the rootfs onto the 2-nd boot device partition.<br>This screen short reflects it.}}
 +
  ┌──────────────────────────────────────────── Boot options ─────────────────────────────────────────────┐
 +
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted  │ 
 +
  │  letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press          │ 
 +
  │  <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module    │ 
 +
  │  < > module capable                                                                                  │ 
 +
  │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────┐ │ 
 +
  │ │              -*- Flattened Device Tree support                                                    │ │ 
 +
  │ │              [*]  Support for the traditional ATAGS boot data passing                            │ │ 
 +
  │ │              [ ]    Provide old way to pass kernel parameters                                    │ │ 
 +
  │ │              (0) Compressed ROM boot loader base address                                          │ │ 
 +
  │ │              (0) Compressed ROM boot loader BSS address                                          │ │ 
 +
  │ │              [ ] Use appended device tree blob to zImage (EXPERIMENTAL)                          │ │ 
 +
  │ │              ('''console=ttymxc3,115200 root=/dev/mmcblk2p2 rootwait''') Default kernel command string  │ │ 
 +
  │ │                    Kernel command line type (Use bootloader kernel arguments if available)  --->  │ │ 
 +
  │ │              [ ] Kexec system call (EXPERIMENTAL)                                                │ │ 
 +
  │ │              [ ] Build kdump crash kernel (EXPERIMENTAL)                                          │ │ 
 +
  │ │              -*- Auto calculation of the decompressed kernel image address                        │ │ 
 +
  │ │                                                                                                  │ │ 
 +
  │ │                                                                                                  │ │ 
 +
  │ │                                                                                                  │ │ 
 +
  │ └───────────────────────────────────────────────────────────────────────────────────────────────────┘ │ 
 +
  ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤ 
 +
  │                      <Select>    < Exit >    < Help >    < Save >    < Load >                        │ 
 +
  └───────────────────────────────────────────────────────────────────────────────────────────────────────┘
  
<pre>
+
                ┌───────────────────── Default kernel command string ─────────────────────┐
  ┌────────── Encoders, decoders, sensors and other helper chips ───────────┐
+
                │  Please enter a string value. Use the <TAB> key to move from the input │   
  │ ┌─────────────────────────────────────────────────────────────────────┐ │ 
+
                │  field to the buttons below it.                                        │   
  │ │        *** Video decoders ***                                      │ │   
+
                ┌─────────────────────────────────────────────────────────────────────┐ │   
  │ │    < > Texas Instruments TVP514x video decoder                      │ │  
+
                │console=ttymxc3,115200 root=/dev/mmcblk2p2 rootwait                  │ │   
  │ │    <M> Texas Instruments TVP5150 video decoder                      │ │   
+
                └─────────────────────────────────────────────────────────────────────┘ │   
  │ │    < > Texas Instruments TVP7002 video decoder                      │ │   
+
                                                                                        │   
  │ │    < > vpx3220a, vpx3216b & vpx3214c video decoders                │ │   
+
                ├─────────────────────────────────────────────────────────────────────────┤  
  │ │        *** Video and audio decoders ***                            │ │   
+
                                        Ok >     < Help >                         │   
  │    < > Philips SAA7171/3/4 audio/video decoders                    │ │   
+
                └─────────────────────────────────────────────────────────────────────────┘
  │ │    < > Conexant CX2584x audio/video decoders                        │ │   
 
  │ │        *** MPEG video encoders ***                                  │ │   
 
  │ │    < > Conexant CX2341x MPEG encoders                              │ │  
 
  │        *** Video encoders ***                                      │ │ 
 
  │ │    < > Philips SAA7127/9 digital video encoders                    │ │  
 
  │ └─────────────────────────────────────────────────────────────────────┘ │  
 
  ├─────────────────────────────────────────────────────────────────────────┤ 
 
  │                    <Select>    < Exit >   < Help >                     │   
 
  └─────────────────────────────────────────────────────────────────────────┘
 
</pre>
 
  
 
== See also ==
 
== See also ==
* [[CM-FX6: Linux: Getting started]]
+
* [[CM-FX6: Linux: Automatic Installation]]
 +
* [[CM-FX6: Linux: Getting started|CM-FX6: Linux: Manual Linux installation]]
 
* [[CM-FX6: Linux: Debian]]
 
* [[CM-FX6: Linux: Debian]]
* [[Linux Development for ARM modules]]
 
  
 
[[Category:Linux]]
 
[[Category:Linux]]
 
[[Category:CM-FX6]]
 
[[Category:CM-FX6]]

Latest revision as of 10:10, 5 January 2017

Overview

The Linux kernel for the CompuLab CM-FX6 System-on-Module / Computer-on-Module provides support for on-board peripherals and abstracts the functionality provided by the hardware.
Current support coverage is specified at O/S support coverage map page.
CompuLab provides ready-to-run binary kernel images, and source code of the modifications and additions made to the Linux kernel to work properly with CM-FX6 modules.

Building kernel for CM-FX6

Admolition note.png The instructions below assume that the /home/development/CM-FX6 directory has been created for CM-FX6 kernel development.

Getting kernel sources

Linux git tree can be cloned or downloaded as a tarball from Freescale public git repository.

Snapshot download

cd /home/development/CM-FX6
wget http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/snapshot/linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga.tar.bz2
tar -xvf linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga.tar.bz2
mv linux-2.6-imx-rel_imx_4.1.15_1.1.0_ga kernel
  • Apply the CM-FX6 patch.
cd /home/development/CM-FX6/kernel
patch -p1 < /path/to/CM-FX6/kernel/linux-4.1.15-cm-fx6-8.0.patch

Git clone

  • Install git version control system.
  • Create a clone of the CM-FX6 Linux kernel tree
cd /home/development/CM-FX6/
git clone git://git.freescale.com/imx/linux-2.6-imx.git
mv linux-2.6-imx kernel
cd /home/development/CM-FX6/kerel
  • Apply the CM-FX6 patch. Create a development branch and apply CompuLab patches.
git checkout -b development rel_imx_4.1.15_1.1.0_ga
git am /home/development/CM-FX6/kernel/patches/*.patch

Building the kernel

export ARCH=arm
export CROSS_COMPILE=arm-none-linux-eabi-
export DTB=$(ls -al arch/arm/boot/dts | awk '(/fx6.*dts$/)&&($0=$NF)&&(gsub(/dts/,"dtb"))' ORS=" ")
make cm_fx6_defconfig
make menuconfig
make zImage modules ${DTB} && INSTALL_MOD_PATH=/home/development/CM-FX6/rootfs make modules_install

In the example above:

  • Linux kernel image (zImage) will be created in /home/development/CM-FX6/kernel/arch/arm/boot
  • device tree blobs will be created in /home/development/CM-FX6/kernel/arch/arm/boot/dts
  • loadable kernel modules will be installed into the /home/development/CM-FX6/rootfs/lib/modules directory.

When the CM-FX6 is booted with the kernel image created as described above and with networked root filesystem at /home/development/CM-FX6/rootfs/, the system will be able to load the kernel modules properly, thus avoiding module version problems.

zImage, DTB files and modules locations

  • In the example above, the Linux kernel image (zImage) will be created in the /home/development/CM-FX6/kernel/arch/arm/boot directory.
ls -al /home/development/CM-FX6/kernel/arch/arm/boot/zImage
  • DTB files
ls -al /home/development/CM-FX6/kernel/arch/arm/boot/dtb/*fx6*.dtb
  • The loadable kernel modules will be installed into the /home/development/CM-FX6/rootfs/lib/modules directory.
ls -al /home/development/CM-FX6/rootfs/lib/modules

Kernel Version

  • In the example above, the Linux kernel release version number will be saved in /home/development/CM-FX6/kernel/include/config/kernel.release
cat /home/development/CM-FX6/kernel/include/config/kernel.release

Prepare kernel and modules tarball

  • In the example below, the Linux kernel and modules are packed into the tar archive for deploying onto the CM-FX6.
mkdir -p /home/development/CM-FX6/rootfs/boot
cp -v /home/development/CM-FX6/kernel/arch/arm/boot/zImage /home/development/CM-FX6/rootfs/boot/zImage-cm-fx6
cp -v /home/development/CM-FX6/kernel/arch/arm/boot/dtb/*fx6*.dtb /home/development/CM-FX6/rootfs/boot/
tar -C /home/development/CM-FX6/rootfs -czvf /home/development/CM-FX6/linux-image-CM-FX6.tar.gz .

Basic platform support

The CM-FX6 basic platform support is implemented in the arch/arm/boot/dts/*fx6* files of the Linux kernel source tree.

These files contain:

  • default setup of multi-functional pins;
  • registration of the devices integrated in the CM-FX6 module;
  • definitions of platform-specific configuration for these devices.

Deploying the CM-FX6 kernel and modules

Boot up the CM-FX6 computer. Copy the previously created linux-image-CM-FX6.tar.gz to /root directory of the CM-FX6.

Mount boot partition

  • Use the below command to mount the boot partition for installing the CM-FX6 Linux kernel binary:
boot_partition=$(awk '!/nfs/ { for (i=1;i<=NF;i++) { if($i~/^root=/) { print substr($i,6,length($i)-6)"1" } } }' /proc/cmdline)
mount $boot_partition /boot

Back up old kernel

  • It is essential to backup the old (known to work) kernel binary.
mkdir /boot/$(uname -r)
mv /boot/uImage-cm-fx6 /boot/zImage-cm-fx6 /boot/*.dtb /boot/$(uname -r)/

Installing kernel and modules

Assuming that the linux-image-CM-FX6.tar.gz tar ball has been copied to the CM-FX6 /root directory.

  • Extract and install the Linux kernel binary:
tar -C / -xvf /root/linux-image-CM-FX6.tar.gz

U-Boot Environment

Common parameters

setenv loadaddr 0x10800000
setenv dtbaddr  0x15000000
setenv bootm_low 0x15000000
setenv zimage zImage-cm-fx6
setenv console console=ttymxc3,115200
setenv rootopt rootfstype=ext4 rw rootwait
setenv netopt ip=dhcp
  • SB-FX6 (Evaluation Board)

In order to boot up an SB-FX6 make use of the imx6q-sbc-fx6.dtb blob file.

setenv dtb imx6q-sbc-fx6.dtb

In order to boot up an SB-FX6m make use of the imx6q-sbc-fx6m.dtb blob file.

  • SB-FX6m (Utilite)
setenv dtb imx6q-sbc-fx6m.dtb

SATA Boot Parameters

setenv satadev 0
setenv rootdev root=/dev/sda2

sata init
fatload sata ${satadev} ${loadaddr} ${zimage}
fatload sata ${satadev} ${dtbaddr} ${dtb}

setenv bootargs ${console} ${rootdev} ${rootopt} ${netopt}
bootz ${loadaddr} - ${dtbaddr}

MMC Boot Parameters

setenv mmcdev 2
setenv rootdev root=/dev/mmcblk2p2

mmc dev ${mmcdev}
fatload mmc ${mmcdev} ${loadaddr} ${zimage}
fatload mmc ${mmcdev} ${dtbaddr} ${dtb}

setenv bootargs ${console} ${rootdev} ${rootopt} ${netopt}
bootz ${loadaddr} - ${dtbaddr}

NFS Boot Parameters

setenv nfsserver <nfs server ip address>
setenv tftpserver <tftp server ip address>
setenv rootdev root=/dev/nfs rw

dhcp
tftpboot ${loadaddr} ${tftpserver}:${zimage}
tftpboot ${dtbaddr} ${tftpserver}:${dtb}

setenv bootargs ${console} ${rootdev} nfsroot=${nfsserver}:${nfsroot} ${netopt}
bootz ${loadaddr} - ${dtbaddr}

Kernel configuration

System Support

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> System Type > Freescale i.MX family

Enable:

  • i.MX6 Quad/DualLite support
  • CompuLab CM-FX6 Support
 ┌──────────────────────────────────────────────── Freescale i.MX family ────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- Freescale i.MX family                                                                    │ │  
 │ │                            *** Device tree only ***                                                               │ │  
 │ │                      [ ]   i.MX50 support                                                                         │ │  
 │ │                      [ ]   i.MX51 support                                                                         │ │  
 │ │                      [*]   i.MX53 support                                                                         │ │  
 │ │                      [*]   i.MX6 Quad/DualLite support                                                            │ │  
 │ │                      [*]   i.MX6 SoloLite support                                                                 │ │  
 │ │                      [ ]   i.MX6 SoloX support                                                                    │ │  
 │ │                      [ ]   i.MX6 UltraLite support                                                                │ │  
 │ │                      [ ]   i.MX7 Dual support                                                                     │ │  
 │ │                      [*]   Vybrid Family VF610 support                                                            │ │  
 │ │                              Clocksource for scheduler clock (Use ARM Global Timer)  --->                         │ │  
 │ │                      [ ]   Freescale LS1021A support                                                              │ │  
 │ │                      [*]   CompuLab CM-FX6 Support                                                                │ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Bus Support

PCIE

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Bus support > PCI host controller drivers

Enable:

  • Freescale i.MX6 PCIe controller
 ┌───────────────────────────────────────────── PCI host controller drivers ─────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      [*] Freescale i.MX6 PCIe controller                                                          │ │  
 │ │                      [ ]   Enable pcie compliance tests on imx6                                                   │ │  
 │ │                      [ ]   PCI Express EP mode in the IMX6 RC/EP interconnection system                           │ │  
 │ │                      [ ]     PCI Express RC mode in the IMX6 RC/EP interconnection system                         │ │  
 │ │                      [ ] Generic PCI host controller                                                              │ │  
 │ │                      [ ] Freescale Layerscape PCIe controller                                                     │ │  
 │ │                      < > Broadcom iProc PCIe controller                                                           │ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

I2C

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > I2C support > I2C Hardware Bus support

Enable:

  • IMX I2C interface
 ┌────────────────────────────────────────────── I2C Hardware Bus support ───────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                          *** I2C system bus drivers (mostly embedded / system-on-chip) ***                        │ │  
 │ │                      < > CBUS I2C driver                                                                          │ │  
 │ │                      < > Synopsys DesignWare Platform                                                             │ │  
 │ │                      < > Synopsys DesignWare PCI                                                                  │ │  
 │ │                      < > GPIO-based bitbanging I2C                                                                │ │  
 │ │                      <*> IMX I2C interface                                                                        │ │  
 │ │...................................................................................................................│ │  
 │ │                          *** Other I2C/SMBus bus drivers ***                                                      │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

SPI

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > SPI support

Enable:

  • Freescale i.MX SPI controllers
 ┌───────────────────────────────────────────────────── SPI support ─────────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- SPI support                                                                              │ │  
 │ │                      [ ]   Debug support for SPI drivers                                                          │ │  
 │ │                            *** SPI Master Controller Drivers ***                                                  │ │  
 │ │                      < >   Altera SPI Controller                                                                  │ │  
 │ │                      -*-   Utilities for Bitbanging SPI masters                                                   │ │  
 │ │                      < >   Cadence SPI controller                                                                 │ │  
 │ │                      < >   GPIO-based bitbanging SPI Master                                                       │ │  
 │ │                      <*>   Freescale i.MX SPI controllers                                                         │ │  
 │ │                            *** SPI Protocol Masters ***                                                           │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SATA

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Serial ATA and Parallel ATA drivers (libata)

Enable:

  • AHCI SATA support
  • Platform AHCI SATA support
  • Freescale i.MX AHCI SATA support
 ┌──────────────────────────────────── Serial ATA and Parallel ATA drivers (libata) ─────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- Serial ATA and Parallel ATA drivers (libata)                                             │ │  
 │ │                      <*>   AHCI SATA support                                                                      │ │  
 │ │                      <*>   Platform AHCI SATA support                                                             │ │  
 │ │                      <*>   Freescale i.MX AHCI SATA support                                                       │ │  
 │ │                                *** SATA SFF controllers with BMDMA ***                                            │ │  
 │ │                      < >       Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support                                     │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 

USB

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > USB support

Enable:

  • Support for Freescale i.MX on-chip EHCI USB controller
  • Generic EHCI driver for a platform device
 ┌───────────────────────────────────────────────────── USB support ─────────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                              *** USB Host Controller Drivers ***                                                  │ │  
 │ │                      <*>     Support for Freescale i.MX on-chip EHCI USB controller                               │ │  
 │ │                      <*>     Generic EHCI driver for a platform device                                            │ │  
 │ │...................................................................................................................│ │
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

MMC/SD/SDIO

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > MMC/SD/SDIO card support

Enable:

  • Secure Digital Host Controller Interface support
  • SDHCI platform and OF driver helper
  • SDHCI support for the Freescale eSDHC/uSDHC i.MX controller
 ┌────────────────────────────────────────────── MMC/SD/SDIO card support ───────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- MMC/SD/SDIO card support                                                                 │ │  
 │ │...................................................................................................................│ │
 │ │                      <*>   MMC block device driver                                                                │ │  
 │ │                      (8)     Number of minors per block device                                                    │ │  
 │ │                      [*]     Use bounce buffer for simple hosts                                                   │ │  
 │ │                      < >   SDIO UART/GPS class support                                                            │ │  
 │ │                      < >   MMC host test driver                                                                   │ │  
 │ │                            *** MMC/SD/SDIO Host Controller Drivers ***                                            │ │  
 │ │                      <*>   Secure Digital Host Controller Interface support                                       │ │  
 │ │                      < >     SDHCI support on PCI bus                                                             │ │  
 │ │                      <*>     SDHCI platform and OF driver helper                                                  │ │  
 │ │                      < >       SDHCI OF support for the Arasan SDHCI controllers                                  │ │  
 │ │                      <*>       SDHCI support for the Freescale eSDHC/uSDHC i.MX controller                        │ │  
 │ │...................................................................................................................│ │
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 

NetWork

CAN

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Networking support > CAN bus subsystem support > CAN Device Drivers

Enable:

  • Support for Freescale FLEXCAN based chips
 ┌───────────────────────────────────────────────── CAN Device Drivers ──────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      < > Virtual Local CAN Interface (vcan)                                                       │ │  
 │ │...................................................................................................................│ │
 │ │                      <*>   Support for Freescale FLEXCAN based chips                                              │ │  
 │ │...................................................................................................................│ │
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 

FEC/IGB

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Network device support > Ethernet driver support

Enable:

  • Freescale devices
  • FEC ethernet controller (of ColdFire and some i.MX CPUs)
  • Intel devices
  • Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support
 ┌─────────────────────────────────────────────── Ethernet driver support ───────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      [ ]   Faraday devices                                                                        │ │  
 │ │                      [*]   Freescale devices                                                                      │ │  
 │ │                      <*>     FEC ethernet controller (of ColdFire and some i.MX CPUs)                             │ │  
 │ │...................................................................................................................│ │  
 │ │                      [*]   Intel devices                                                                          │ │  
 │ │                      < >     Intel(R) PRO/100+ support                                                            │ │  
 │ │                      < >     Intel(R) PRO/1000 Gigabit Ethernet support                                           │ │  
 │ │                      < >     Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support                               │ │  
 │ │                      <M>     Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support                            │ │  
 │ │...................................................................................................................│ │
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

WiFi

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Network device support > Wireless LAN

Enable:

  • Marvell WiFi-Ex Driver
  • Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897
 ┌──────────────────────────────────────────────────── Wireless LAN ─────────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │...................................................................................................................│ │  
 │ │                      < >   ZyDAS ZD1211/ZD1211B USB-wireless support                                              │ │  
 │ │                      <M>   Marvell WiFi-Ex Driver                                                                 │ │  
 │ │                      <M>     Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897                        │ │  
 │ │                      < >     Marvell WiFi-Ex Driver for PCIE 8766/8897                                            │ │  
 │ │...................................................................................................................│ │
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Bluetooth

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Networking support > Bluetooth subsystem support > Bluetooth device drivers

Enable:

  • Marvell Bluetooth driver support
  • Marvell BT-over-SDIO driver
 ┌────────────────────────────────────────────── Bluetooth device drivers ───────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      < > HCI USB driver                                                                           │ │  
 │ │                      < > HCI SDIO driver                                                                          │ │  
 │ │                      < > HCI UART driver                                                                          │ │  
 │ │                      < > HCI BCM203x USB driver                                                                   │ │  
 │ │                      < > HCI BPA10x USB driver                                                                    │ │  
 │ │                      < > HCI BlueFRITZ! USB driver                                                                │ │  
 │ │                      < > HCI VHCI (Virtual HCI device) driver                                                     │ │  
 │ │                      <M> Marvell Bluetooth driver support                                                         │ │  
 │ │                      <M>   Marvell BT-over-SDIO driver                                                            │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

Multimedia

IPU

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

> Device Drivers > MXC support drivers Enable:

  • Image Processing Unit Driver
 ┌───────────────────────────────────────────────── MXC support drivers ─────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      [*] Image Processing Unit Driver                                                             │ │  
 │ │                          MXC Media Local Bus Driver  --->                                                         │ │  
 │ │                      < > i.MX IPUv3 prefetch engine                                                               │ │  
 │ │                          MXC Vivante GPU support  --->                                                            │ │  
 │ │                          MXC SIM Support  --->                                                                    │ │  
 │ │                          MXC MIPI Support  --->                                                                   │ │  
 │ │                          MXC VPU(Video Processing Unit) support  --->                                             │ │  
 │ │                          MXC HDMI CEC (Consumer Electronics Control) support  --->                                │ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

GPU

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > MXC support drivers > MXC Vivante GPU support

Enable:

  • MXC Vivante GPU support
 ┌─────────────────────────────────────────────── MXC Vivante GPU support ───────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      <M> MXC Vivante GPU support                                                                  │ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

VPU

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > MXC support drivers > MXC VPU(Video Processing Unit) support

Enable:

  • Support for MXC VPU(Video Processing Unit)
 ┌─────────────────────────────────────── MXC VPU(Video Processing Unit) support ────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      <*> Support for MXC VPU(Video Processing Unit)                                               │ │  
 │ │                      [ ]   MXC VPU debugging                                                                      │ │  
 │ │                      [ ]   MX6 VPU 352M                                                                           │ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

Frame buffer Devices

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

> Device Drivers > Graphics support > Frame buffer Devices Enable:

  • MXC Framebuffer support
  • Synchronous Panel Framebuffer
  • MXC MIPI_DSI
  • TRULY WVGA Panel
  • MXC LDB
  • MXC HDMI driver support
  • MXC EDID support
  • Hannstar CABC function
 ┌──────────────────────────────────────────────── Frame buffer Devices ─────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌──────────────────────^(-)─────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      < > AUO-K190X EPD controller support                                                         │ │  
 │ │                      <*> MXS LCD framebuffer support                                                              │ │  
 │ │                      [ ] Simple framebuffer support                                                               │ │  
 │ │                      <*> MXC Framebuffer support                                                                  │ │  
 │ │                      <*>   Synchronous Panel Framebuffer                                                          │ │  
 │ │                      <*>     MXC MIPI_DSI                                                                         │ │  
 │ │                      < >     MXC MIPI_DSI_SAMSUNG                                                                 │ │  
 │ │                      <*>     TRULY WVGA Panel                                                                     │ │  
 │ │                      <*>     MXC LDB                                                                              │ │  
 │ │                      <*>     MXC HDMI driver support                                                              │ │  
 │ │                      <*>   MXC EDID support                                                                       │ │  
 │ │                      <*> Si Image SII9022 DVI/HDMI Interface Chip                                                 │ │  
 │ │                      < > MXC DCIC                                                                                 │ │  
 │ │                      <*> Hannstar CABC function                                                                   │ │  
 │ │                      <*> E-Ink Panel Framebuffer                                                                  │ │  
 │ │                      < > E-Ink Panel Framebuffer based on EPDC V2                                                 │ │  
 │ │                      [ ] E-Ink Auto-update Mode Support                                                           │ │  
 │ │                      < > Solomon SSD1307 framebuffer support                                                      │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

Audio

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Sound card support > Advanced Linux Sound Architecture > ALSA for SoC audio support > SoC Audio for Freescale CPUs

Enable:

  • SoC Audio support for i.MX boards with S/PDIF
  • SoC Audio support for i.MX boards with HDMI port
  • SoC Audio support for i.MX boards with WM8731
 ┌──────────────────────────────────────────── SoC Audio for Freescale CPUs ─────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                          *** Common SoC Audio options for Freescale CPUs: ***                                     │ │  
 │ │...................................................................................................................│ │  
 │ │                      <*> SoC Audio support for i.MX boards with S/PDIF                                            │ │  
 │ │                      <*> SoC Audio support for i.MX boards with HDMI port                                         │ │  
 │ │                      <*> SoC Audio support for i.MX boards with WM8731                                            │ │  
 │ │...................................................................................................................│ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 

MXC MIPI

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > MXC support drivers > MXC MIPI Support

Enable:

  • MIPI CSI2 support
 ┌────────────────────────────────────────────────── MXC MIPI Support ───────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      <*> MIPI CSI2 support                                                                        │ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

MIPI Camera

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Multimedia support > V4L platform devices > MXC Camera/V4L2 PRP Features support

Enable:

  • OmniVision ov5640 camera support using mipi
 ┌──────────────────────────────────────── MXC Camera/V4L2 PRP Features support ─────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      <M> OmniVision ov5640 camera support                                                         │ │  
 │ │                      <M> OmniVision ov5642 camera support                                                         │ │  
 │ │                      <M> OmniVision ov5640 camera support using mipi                                              │ │  
 │ │                      <M> Analog Device adv7180 TV Decoder Input support                                           │ │  
 │ │                      <*> Select Overlay Rounting (Queue ipu device for overlay library)  --->                     │ │  
 │ │                      <*> Pre-processor Encoder library                                                            │ │  
 │ │                      <*> IPU CSI Encoder library                                                                  │ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Input Device

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Input device support > Touchscreens

Enable:

  • ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
 ┌──────────────────────────────────────────────────── Touchscreens ─────────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- Touchscreens                                                                             │ │  
 │ │                      <M>   ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens                                │ │  
 │ │...................................................................................................................│ │  
 │ │                                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

OTG

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > USB support

Enable:

  • OTG support
 ┌───────────────────────────────────────────────────── USB support ─────────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- USB support                                                                              │ │  
 │ │                      <*>   Support for Host-side USB                                                              │ │  
 │ │...................................................................................................................│ │  
 │ │                      [*]     OTG support                                                                          │ │  
 │ │                      [ ]     Rely on OTG and EH Targeted Peripherals List                                         │ │  
 │ │...................................................................................................................│ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

USB Gadget Support

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > USB support > USB Gadget Support

Enable:

  • USB Gadget Drivers
  • Audio Gadget
  • UAC 1.0 (Legacy)
  • Ethernet Gadget (with CDC Ethernet support)
  • Mass Storage Gadget
  • Serial Gadget (with CDC ACM and CDC OBEX support)
 ┌───────────────────────────────────────────────── USB Gadget Support ──────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- USB Gadget Support                                                                       │ │  
 │ │...................................................................................................................│ │  
 │ │                      <M>   USB Gadget Drivers                                                                     │ │  
 │ │                      <M>     Audio Gadget                                                                         │ │  
 │ │                      [*]       UAC 1.0 (Legacy)                                                                   │ │  
 │ │                      <M>     Ethernet Gadget (with CDC Ethernet support)                                          │ │  
 │ │                      <M>     Mass Storage Gadget                                                                  │ │  
 │ │                      <M>     Serial Gadget (with CDC ACM and CDC OBEX support)                                    │ │    
 │ │...................................................................................................................│ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘  

Serial Console

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Character devices > Serial drivers

Enable:

  • IMX serial port support
  • Console on IMX serial port
 ┌─────────────────────────────────────────────────── Serial drivers ────────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │...................................................................................................................│ │  
 │ │                      < > MAX310X support                                                                          │ │  
 │ │                      <*> IMX serial port support                                                                  │ │  
 │ │                      [*]   Console on IMX serial port                                                             │ │  
 │ │                      < > Digi International NEO and Classic PCI Support                                           │ │  
 │ │...................................................................................................................│ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 

LED

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > LED Support > LED Trigger support

Enable:

  • LED Heartbeat Trigger
 ┌───────────────────────────────────────────────── LED Trigger support ─────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │                      --- LED Trigger support                                                                      │ │  
 │ │...................................................................................................................│ │  
 │ │                      <*>   LED Heartbeat Trigger                                                                  │ │  
 │ │...................................................................................................................│ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 

RTC

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Device Drivers > Real Time Clock
  • EM Microelectronic EM3027
 ┌─────────────────────────────────────────────────── Real Time Clock ───────────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are      │  
 │  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,    │  
 │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                  │  
 │                                                                                                                       │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │...................................................................................................................│ │  
 │ │                      <*>   EM Microelectronic EM3027                                                              │ │  
 │ │...................................................................................................................│ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                               <Select>    < Exit >    < Help >    < Save >    < Load >                                │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

CMDLINE

make menuconfig 
.config - Linux/arm 4.1.15 Kernel Configuration
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> Boot options
  • Edit CONFIG_CMDLINE
Admolition note.png The latest release procedure deploys the rootfs onto the 2-nd boot device partition.
This screen short reflects it.
 ┌──────────────────────────────────────────── Boot options ─────────────────────────────────────────────┐
 │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted  │  
 │  letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press          │  
 │  <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module    │  
 │  < > module capable                                                                                   │  
 │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
 │ │              -*- Flattened Device Tree support                                                    │ │  
 │ │              [*]   Support for the traditional ATAGS boot data passing                            │ │  
 │ │              [ ]     Provide old way to pass kernel parameters                                    │ │  
 │ │              (0) Compressed ROM boot loader base address                                          │ │  
 │ │              (0) Compressed ROM boot loader BSS address                                           │ │  
 │ │              [ ] Use appended device tree blob to zImage (EXPERIMENTAL)                           │ │  
 │ │              (console=ttymxc3,115200 root=/dev/mmcblk2p2 rootwait) Default kernel command string  │ │  
 │ │                    Kernel command line type (Use bootloader kernel arguments if available)  --->  │ │  
 │ │              [ ] Kexec system call (EXPERIMENTAL)                                                 │ │  
 │ │              [ ] Build kdump crash kernel (EXPERIMENTAL)                                          │ │  
 │ │              -*- Auto calculation of the decompressed kernel image address                        │ │  
 │ │                                                                                                   │ │  
 │ │                                                                                                   │ │  
 │ │                                                                                                   │ │  
 │ └───────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
 ├───────────────────────────────────────────────────────────────────────────────────────────────────────┤  
 │                       <Select>    < Exit >    < Help >    < Save >    < Load >                        │  
 └───────────────────────────────────────────────────────────────────────────────────────────────────────┘
                ┌───────────────────── Default kernel command string ─────────────────────┐
                │  Please enter a string value. Use the <TAB> key to move from the input  │  
                │  field to the buttons below it.                                         │  
                │ ┌─────────────────────────────────────────────────────────────────────┐ │  
                │ │console=ttymxc3,115200 root=/dev/mmcblk2p2 rootwait                  │ │  
                │ └─────────────────────────────────────────────────────────────────────┘ │  
                │                                                                         │  
                ├─────────────────────────────────────────────────────────────────────────┤  
                │                         <  Ok  >      < Help >                          │  
                └─────────────────────────────────────────────────────────────────────────┘

See also