Freescale i.MX6 Resources: Development Boards, Documentation, Source Code and Tools

Orange Pi Development Boards

Reader “Mark” recently left a comment saying the NDA on Freescale i.MX6 resources was lifted and documentation and source code were now available for the platform. So it’s time for me to look into it, and provide an overview of Freescale i.MX6 features, list available development platforms, and have a closer look at the documentation, source code and tools for the platform.

Freescale i.MX6 Processors

In 2011, Freescale initially announced 3 processors in the i.MX6 series for consumer, industrial and automotive markets, but added 2 lite SoC in 2012, and there are now 5 members in the family:

  • Freescale i.MX6SoloLite – Single Cortex A9 processor up to 1 GHz with 256KB L2 Cache, 32-bit DDR3 and LPDDR2 memory support, and 2D graphics accelerator (Vivante GC355 + GC320)
  • Freescale i.MX6Solo – Single Cortex A9 core up to 1 GHz with 512KB L2 Cache, 32-bit DDR3 and LPDDR2 memory support, and 2D & 3D graphics accelerator (Vivante GC880 + GC320)
  • Freescale i.MX6DualLite – Dual Cortex A9 up to 1 GHz with 512KB L2 Cache, 32-bit DDR3 and LPDDR2 memory support, and 2D & 3D graphics accelerator (Vivante GC880 + GC320)
  • Freescale i.MX6Dual – Dual Cortex A9 up to 1.2 GHz with 1MB L2 Cache, 64-bit DDR3 and LPDDR2 memory support, SATA-II, and 2D & 3D graphics accelerator (Vivante GC2000 + GC355 + GC320)
  • Freescale i.MX6Quad – Quad Cortex A9 up to 1.2 GHz with 1MB L2 Cache, 64-bit DDR3 and LPDDR2 memory support, SATA-II, and 2D & 3D graphics accelerator (Vivante GC2000 + GC355 + GC320)
i.MX6 Lite Series
Freescale i.MX6 Series

Everything I’ve written above is actually nothing new as this was mentioned in the press releases and Freescale i.MX6 page for a while. What might be new is the internal structure of the processors.

Freescale i.MX6 Dual/Quad Block Diagram (Click to Enlarge)

If you want to get more overview about Freescale i.MX6 SoC features, I invite you to visit the 2 links at the beginning of this section. If you want to look into details continue reading and we’ll get to the documentation soon.

Freescale i.MX6 Development Boards

In this blog, I mainly cover low cost development boards and gadgets, and we have already several boards which are available now or soon will be:

Low Cost Quad-core Cortex A9 Board
Freescale iMX6q Sabre Lite Development Board

Another low cost alternative would be to use the upcoming Hiapad Hi-802 mini PC ($89) based on Freescale i.MX6Quad and providing easy access to debug ports. Obviously this option offers less flexibility and features than the first 2 boards.

Freescale also provides some full-featured (and somewhat expensive) development platforms for different applications:

  • i.MX 6SoloLite Evaluation Kit ($399 to $499) – Evaluation kit based on i.MX6SoloLite to develop e-Reader products. $399 is for the board only, and $499 includes an E-Ink Panel with the board.
  • SABRE Board and Platform for Smart Devices ($399 and $999) – The SABRE board (MCIMX6Q-SDB) is powered by i.MX6Quad with 1GB RAM, 8GB eMMC, 2xLVDS, HDMI and LCD video outputs,, 2x SD card sockets, Gb Ethernet, SATA connector and more. The SABRE Platform is based on the SABRE board and comes with a 10.1″ LVDS display with integrated P-cap sensing.
  • SABRE for Automotive Infotainment ($799) – There are actually 2 platforms: one using i.MX6Quad(1GHz) and the other i.MX6DualLite (800 MHz). Both plaforms come with 2GB  DDR3 RAM, 32 MB NOR flash, a NAND flash socket, LVDS & HDMI interfaces, Ethernet, SD card socket, and more. The Quad version also comes with a SATA port.

All development platforms should be be able to support Android, Linux and Windows Embedded operating systems.

Freescale i.MX6 Documentation

BIG FAT WARNING! If you’ve been working on Chinese (and/or Taiwanese) SoCs for too long, you may be in for a shock (and may end up missing reverse-engineering the datasheet from the source code) as Freescale has released lots of document publicly (I won’t be able to list them all here) and the documentation appears to very thorough. For example, Freescale i.MX6 Reference Manual is 5739 pages long!

You can find all documents on Freescale i.MX6 Documentation page, and the most interesting (to me) are:

I’ve flicked through the technical documentation and it seems really good. I’ve discovered that i.MX6Quad can boot from SPI, I2C and EIM (External Interface Module) interfaces, NAND flash, SD/MMC, SATA or USB depending on the board configuration, which looks pretty darn interesting, especially for USB and SATA boot.

I’ve also looked at Linux and Android documentation (obviously), but I’m a bit puzzled as it asks you to use Ubuntu 9.04 (Jaunty) for the build environment (LTIB), and provide links to a git repo where the kernel has not been updated for 8 months and u-boot for 4 months… But as you’ll see below we won’t need to use those as you’ll discover below. Most of the software documentation on Freescale refers to the SABRE for Smart Devices and Automotive Infotainment, so if you are using one of the low cost board may be better off checking out the vendor software documentation.

[Update: There are lots of how-tos for i.MX6 processors on imx community page]

Elements14 has documentation for the SABRE Lite Board (which it sells for $179) including a user manual describing the hardware and showing how to get started with the software (TimeLink Linux BSP), and schematics. Boundary Devices has excellent instructions on their blog, and if you have a Freescale i.MX6 device to develop on, I recommend you subscribe to their blog.

Freescale released schematics and PCB layout files for the SABRE SD and AI platforms (Cf. Printed Circuit Boards and Schematics-Schematics section on i.MX6 page). If you are more interested in SABRE Lite hardware, Boundary Devices released the following files:

Freescale i.MX6 Linux and Android BSP & Source Code

Freescale i.MX6 Source Code

Beside linking to an outdated git repository, Freescale also provides download link to Linux Kernel 3.0.35, Android 4.0.4 and Multimedia Codecs source code:

Building the Linux Kernel and U-Boot for Freescale i.MX6 SABRE Lite board

Let’s try to build u-boot and the kernel for Freescale .iMX6 uing ltib in Ubuntu 12.04 64-bit.

After downloading L3.0.35_12.09.01_ER_SOURCE, extract it, and install the LTIB package as a normal user (not as root), in a location such as /home/user/:

Install some dependencies (this may vary depending upon your current installation and OS):

Since I’m using a 64-bit build machine, I also had to install the following:

After spending some time trying to figure out problems, I realized Ubuntu 12.04 is not currently supported in LTIB and you need a patch, which you can apply as follows in ltib directory:

curl -L | bash

Finally, you may need to edit the sudoers file (sudo visudo) to allow the current user to run rpm as root without password, and add the following line:

Start to build LTIB and cross your fingers:

At this point, it will install the host support packages (it will take a while) and eventually a menu will popup.

Set the platform to “Freescale iMX reference boards” (as if you had a choice), exit and save the changes. At the next menu, select platform type as “imx6q” and package profile. Exit and save the new configuration. Please note that only the profiles of Min profile, FSL gnome release packages, and mfg firmware profile pass build tests. I chose the default “Min” profile.

You can use the ./ltib -m selectype command to change the profile after the first selection.

To build U-Boot for i.MX6 SABRE Lite board, select “Choose your board for U-Boot” as “mx6q_sabrelibre”. This option is only for U-Boot, as the current default kernel configuration builds a single image that works for all i.MX6 boards except i.MX 6SoloLite boards. Close the configuration screen and save the changes. You can now build the kernel and U-Boot by running the following command:

The build failed to build busybox. To fix it, I had to edit rootfs/usr/lib/ and change one line to:

Same thing for rootfs/usr/lib/

Then type ./ltib again. When this procedure is completed, the kernel image and the U-Boot images are located at: rootfs/boot/:

Freescale i.MX6 Android, Linux, Ubuntu… Binary Images/Files

There are also some binary demo files for Android and Linux and closed source files (e.g. codecs):

Beside the Ubuntu root file system, Arch Linux for ARM is also said to be working on Nitrogen6X board.

There are also demo images specific to SABRE Smart Devices and Automotive Infotainment platforms. For a complete list of available files, visit Freescale i.MX6 Software & Tools page.

Boundary devices posted a binary LTIB image for i.MX6 Sabre Lite and Nitrogen6X boards as well as a short getting started guide. It might be worth having a look, although this has been done in August. Linaro has instructions to run Ubuntu 11.10 (Oneric) on the board, but it dates a bit and images have disappeared.

Finally, you could also use Timesys LinuxLink Linux BSP for SABRE Lite and Nitrogen6X boards. LinuxLink is a web based system that allows you to build custom Linux distributions for your board. I gave an overview of this web-based build system in a previous post “Timesys Unveils LinuxLink BSP/SDK for MityARM-3359 SoM (TI AM335x)“.

Freescale i.MX6 Development Tools

Again, you can check Freescale i.MX6 Software & Tools page for a list of software and hardware tools, but there appears to be 3 main software tools:

  • LTIB – This is the default build system for Freescale i.MX series processors, and it widely referred to in the documentation.
  • MfgTool – Tool for downloading OS images to the i.MX6. It can be downloaded separately, but is also part of IMX6_R13.4_ANDROID_SOURCE_CODE.
  • IMX_CST_TOOL – Freescale Code Signing Tool for the High Assurance Boot library. Provides software code signing support designed for use with i.MX processors that integrate the HAB library in the internal boot ROM.

If you develop on hardware based on Freescale i.MX6, you’ll have to use the first 2 tools. To be honest, I’m not exactly sure what the third tool does, but it seems required for security purpose at boot time. You need to be approved manually by Freescale before being able to download IMX_CST_TOOL.[Update: I’ve been approved to download the tool after 12 days, and what it does is to lock your hardware to only run software signed with a specific key. This means you would not be able to hack your i.MX6 device if HAB Library/ CST are in use]. This is probably not really needed if you just want to tinker with your board, but if you’re going to make a commercial product, you may need it.

Elements14 also point to Timesys LinuxLink (mentioned above) and ARM DS 5, and even if those are interesting, they may not be necessary. It all depends on your preferences and needs.

For low level debugging and board bring-up, you may want to use hardware probes such as ARIUM HS-1000S JTAG Emulator/Debugger or iSystem iC3000 ActiveEmulator debug and test tool.

If you need support for the platform for one of the low cost boards, you could check the imx community, comment in Boundary Devices blog (if you use their images) or participate in Elements14 community.

Leave a Reply

38 Comments on "Freescale i.MX6 Resources: Development Boards, Documentation, Source Code and Tools"

newest oldest most voted
Notify of

I think I just came in my pants.

Nice write-up, look forward to some set top box form factor devices using the quad!


Did I already mentioned to you how good it is to have you back 😀

Great write up. Will have to go through it once more later, when the coffee really have kicked in.


Great article. I ordered a sabre lite (around $185 shipped to me) from They are still on pre-order but say boards should ship on 11-21-12. I’ll test your build instructions once I receive it.

I was really shocked when I first found the SDK and docs for the older i.mx53. I’ve never seen any SoC vendor release so much detailed info without an NDA. I knew they would eventually do the same for the i.mx6 once it was officially released.

In addition to the properly written English documents (no poor Chinese translations here!), you also have a support forum where actual freescale employees answer your questions, post sample source code, etc. Support is unreal compared to the Chinese vendors.

Too bad freescale has not had much market success with their products. There are very few tablets, tv sticks, etc. using their chips. Hopefully they will not go out of business.


TI also have very good free documentation for the OMAP stuff, although i would say the freescale kernel bits are better written and better documented from what little i’ve seen of either.

The kobo (touch at least) uses an i.mx53, so they must be used there and about outside of chinese designs – perhaps in other e-ink devices.


Mark :
Too bad freescale has not had much market success with their products. There are very few tablets, tv sticks, etc. using their chips. Hopefully they will not go out of business.

Maybe this is the reason why we have this info?


I agree that TI is another good vendor with lots of documentation and code. But they are exiting the mobile processor market so continued support is in doubt. Is there even a low cost (<$200) TI 4470 board available somewhere?


Mark :
I agree that TI is another good vendor with lots of documentation and code. But they are exiting the mobile processor market so continued support is in doubt. Is there even a low cost (<$200) TI 4470 board available somewhere?

You have the Pandaboard for instance for the OMAP.

Else, the i.MX is looking great, and I’m currently designing a board for my employer with it. Freescale is really more targeted to industrial and automotive, but the price of the new imx6 is really competetive also for commercial use and I think it has great potential. The imx6 will also be available for a minimum of 15(!) years since it’s an automotive product, according to Freescale’s longevity program. so the effort put into this platform will not be wasted by obsoletions and new product releases in the near future…

I really hope it picks up momentum with low-cost Tv-boxes too, since this is much more hacker friendly with proper documentation and sw.


The kobo (touch at least) uses an i.mx53, so they must be used there and about outside of chinese designs – perhaps in other e-ink devices.

Sure, both Kindle (3 at least) and Sony PRS T1, few of the most successful E-Book readers (IMHO) have Freescale i.MX CPUs, so they’re definitely not the least presented on the market.


If you look at “i.MX 6Dual/6Quad Applications Processor Reference Manual”, page 495, you’ll read:

“9.9.1 Vector Graphics Overview
The vector graphics processing unit (version 2) is based on the GC355 IP core.
Information about the GPU IP is currently contained in the following documents:
• DataBook.Vivante.GC350.pdf

That last file would be great to get hands on. CNX, any ideas?


Canceled my pre-order for sabre lite. After reading the source and docs for a few days, I realized the i.mx6 built-in HDMI transmitter does not support 74.176/148.352 Mhz pixel clocks. That’s a deal breaker for my application. Hopefully someone makes a board with external HDMI chip in the future. Otherwise, I’m waiting for Omap5 or maybe look into Exynos5.


0.148 MHz really makes that much difference? It’ll do 1080p @ 60fps with a pixel clock of 148.5 MHz.


Correct. My application requires live video streaming. It must be played back at an exact rate matching the input, otherwise the decoding buffer will eventually overflow/underflow. Dropping or repeating frames like you see in all the other Arm SoC is not acceptable to me. Reading their specs and source code, Omap4, Exynos5, and Telechips seem to support all necessary video timings.


If you look at that table in the manual, you see that the 60 and 59.94Hz modes all map to the same value in the first column. They are basically treating those as equivalent modes – which they are not. You can also see that their HDMI transmitter does not support the correct clocks on page 1507 – section : CTS Calculation. They do not support any of the clocks that require 1.001 scaling: 60/1.001 = 59.940, 24/1.001=23.976, etc.

In general, since we don’t have reference manuals to the majority of SoC out there, I usually just look at the kernel source code where they initialize the HDMI transmitter. HDMI does not have a separate clock for the audio so it must be derived from video clock using numerator/denominator scale vales that you pass down to the sink device. Any chip with correct clocks will pass down TMDS CTS and N values of 140625 and 5824 for 1080p/59.940 using 48Khz audio sampling rate. You can see other valid combinations in the HDMI 1.4 specifications – table 7-3. Most Arm SoC only support 6144 for N and 74250 or 148500 for CTS. Of course it’s possible the manuals are wrong or the source code is incomplete but I’m not wasting my time on something without proof it supports what I need.


[…] 2.1, HDMI [email protected], USB OTG e micro-USB. Arriva con Android 4.0 ICS pre-installato, ma dato che Freescale ha rilasciato i sorgenti del suo SoC, sono da preventivare custom Android e distro Linux realizzate ad-hoc. E’ […]


[…] vi xử lý Cortex A9 lõi tứ mạnh mẽ, thì HI-802 còn thực sự hấp dẫn nhờ sự cởi mở của nền tảng do Freescale phát triển. Ngoài Hiapad HI-802 thì trên Geekbuying cũng đang bán chiếc […]


[…] what makes HI-802 really attractive is the openness of the platform, as Freescale released full documentation, as well as Linux and Android Source for i.MX6. This should allow the developers’ community to port diverse Linux distributions on top of […]


[…] hardware files (schematics, PCB layout and gerber files) are available on Novena Wiki. The software for i.MX6 has already been made available by Freescale, but this needs to be tailored to Novena […]


I know how to configure the kernel for the i.MX processor.

-> How can i download the boot-loader into the i.MX processor ?
-> Also i little confused in selecting which flash memory is better NAND or NOR ?
-> If i have downloaded the images into SD/MMC card then what will be the use of NAND Flash or NOR Flash?



[…] Freescale made available i.MX6 development resources, we all knew this was a matter of time before Ubuntu runs on Hi802 / Zealz GK802 mini PC based on […]


[…] usually releases the full source code and provides great documentation for their processors. However I’ve heard several developers complain how the lack of […]


[…] and it can run both Android and Linux distributions such as Ubuntu since Freescale released the source code for i.MX6 processor family. Today, I’ll just show some pictures of the device, and review the device by running some […]


[…] Android mini PCs (e.g. Hi802, GK802) featuring Freescale i.MX6Q processor, Freescale has released full documentation and source code its development platforms, Hi802 / GK802 HDMI TV dongles are easily hackable, and there’s […]


[…] C94? Not that I know of, but I found other things for us, maybe you already knew these links: Freescale i.MX6 Resources: Development Boards, Documentation, Source Code and Tools and: i.MX6Q Product Summary Page If you want to get these files, you have to subscribe to […]


[…] video decoding and 2D/3D acceleration (work in progress), and Freescale has released proper software and hardware development resources for the i.MX6 processor. As mentioned in my review of Hi802 mini PC, the downside is that Vivante GC2000 GPU performance is […]


@cnxsoft: Good find! Was surprised to see title page mention OMAP4470 having it, wouldn’t think they stuff completely new block in OMAP4 series. Pandaboard ES is still OMAP4460 though.


@cnxsoft: Tried installing L3.0.35_4.0.0_130424_source.tar.gz, the latest linux release and I’ve also applied the patch for ubuntu 12.04. Yet it simply refuses to install ltib. The contents of the host_config.log are as follows. Please advise.
Processing: flex
Build path taken because: directory build, no prebuilt rpm,

Cowardly refusing to clobber existing directory:
Remove this by hand if you really want to rebuild this package from scratch

Died at ./ltib line 1392.

Started: Mon Jun 10 16:12:06 2013
Ended: Mon Jun 10 16:12:06 2013
Elapsed: 0 seconds

These packages failed to build:

Build Failed



Hi Guys,

little (honestly tiny) concern: in the ‘Building the Linux Kernel ..,’ section, you’re altering the same file 2 times in a row (‘rootfs/usr/lib/’). I guess the first is supposed to be ‘rootfs/usr/lib/

Just stalled over it and guessed I might spare others some time.

thanks and regards for a great article,



sudo apt-get install texinfo or sudo aptitude install texinfo and try again


[…] datasheet release should not really be news, but not all companies are as open as Freescale, and for possibly for fear of IP theft or patent trolls, most companies decide to keep datasheet […]


Can you please suggest a software development tool for Freescale i.MX6Quad – Quad Cortex A9 . Will DS-5 will support it ??