iMX6 BSP

iMX6

The GuruCE iMX6 BSP is a high quality, well structured, 100% OAL stable and production ready full source BSP for WEC7 and WEC2013 supporting any board containing an NXP iMX6 Solo, DualLite, Dual, Quad, DualPlus or QuadPlus processor.

You can download evaluation WEC7/WEC2013 kernel images to evaluate our BSP on a variety of off-the-shelf boards.

Please contact us for more information and pricing.

Here are the main benefits of our iMX6 BSP compared to the other iMX6 BSP offerings on the market today:

  • 100% OAL Stability
  • iMX6 Catalog - BSP OptionsOur initial iMX6 BSP release was all about stability. We have done extensive testing to make sure the entire BSP is 100% stable, in multi-core and single-core configurations, with or without caching, at stress and at rest. We have completely rewritten all of the low-level initialization code, all the timing code (CCM, system & performance counters), all of the cache code, all of the SMP (symmetric multiprocessing/multi-core) code and most of the interrupt handling code.

  • Performance
  • We have implemented all the cache optimizations possible for the iMX6 Cortex-A9 in combination with the PL310 L2 Cache Controller and we have configured DDR3 per board at the most optimal, fully stress tested, settings. The GuruCE iMX6 BSP is (up to 6x) faster than any other iMX6 BSP on the market today. Speed guaranteed!

  • Super fast boot
  • We now support LZ4 compressed kernel binaries; we supply a tool PackBin and our OS Designs automatically compress your kernel image at build-time. We have also optimized the cache settings in the bootloader to speed up loading (and flashing) of the kernel. Together with immediate bootsplash display this guarantees an awesome user experience.

  • Absolutely no data corruption
  • We have done extensive testing to make sure there are no data corruption problems (that are plaguing all other i.MX6 BSPs on the market today) when copying large files (on SATA, NAND, USB Storage or USDHC) or when sending large amounts of data over the network.

  • One for all!
  • Our BSP supports the iMX6 Solo, Dual Lite, Dual, DualPlus, Quad and QuadPlus processor range, so you can scale your HW design up or down without any software development investment.

  • One BSP supporting WEC7 and WEC2013
  • Full drop-in support for WEC7 and WEC2013. Not a single code change required in the BSP.

  • One kernel for all displays
  • Simply select the resolution and display output (LCD, LVDS or HDMI) in the bootloader. No need for separate kernel builds!

  • True multi-monitor support
  • Real extended-desktop functionality in Windows Embedded Compact. Multi-monitor setup dynamically configurable in the bootloader menu.

  • Multi display bootsplash support
  • Show a bootsplash image on all displays milliseconds after power is applied. Virtually flicker-free transition to the Windows Embedded Compact desktop.

  • Super easy BSP configuration
  • Very easy configuration of board, bootloader, CPU, cache and page table BSP options through the catalog (see image on the right).

  • Production Quality Code
  • All hardware definitions name-synchronized with the iMX6 Reference Manuals and IOMUX tool. A large amount of NXP (formerly Freescale) code re-factored, cleaned up & bug fixed, and all redundant code removed and restructured. No more searching for driver code distributed throughout the BSP in different folders. Now the BSP is easily maintainable, well-structured & production ready. If you have worked with BSPs from Freescale or some of our competitors before you know what this means and why this is so important. Code quality and BSP structure is everything!

  • Full source
  • Including all Cortex-A9 cache routines, SMP, drivers, etc.
    We just don't believe in binary. Luke would never have gotten so far if he had to "use the binary"... ;-)

  • Very easy to add support for your custom board
  • All board specific settings in one folder and board file generator included. All you need to support your custom board is an IOMux design file (created with NXP's IOMux tool or Pins tool for i.MX) and our board file generator that will create a header file with all your board specific settings.

  • SPI Flash/SD/MMC/SATA/NAND Bootloader
  • Our iMX6 bootloader offers many more configuration options and features, like selecting the serial debug port to use, blowing fuses, configuring the Ethernet settings to be used in Windows Embedded Compact and starting the kernel with a clean registry hive. It also fully supports booting from SPI Flash, SATA, NAND, SD and MMC, and has full support for formatting and partitioning SATA, NAND, SD and MMC and erasing/writing SPI Flash.

  • PCIe bus driver
  • Full support for PCIe, including enumeration over bridges and switches!

  • HDMI auto-detection, hot-plug and dynamic resolution changes
  • This means you can plug in a 1360x768 monitor and have the CE desktop shown in that resolution, then unplug the monitor and plug in a 1920x1080 monitor and CE will dynamically change resolution and show the desktop in 1920x1080 resolution, all this of course without the purple line on the left (a long standing problem in all the other iMX6 BSPs available).

  • Full support for 800x480 LVDS, 1024x768 LVDS (LCD8000-97C), 1024x600 LVDS
  • Including various capacitive and resistive touch controllers.

  • Full support for KOE TX16D20VM5BAA 6.2" 640x240 LCD, DataVision 7" 800x480 LCD and Okaya 7" 800x480 LCD
  • Including various capacitive and resistive touch controllers.

  • Hive based registry support
  • Destination fully configurable through the catalog. No registry modifications required.

  • GPIO driver + SDK library
  • Control any (free) GPIO pin from your application.

  • FlexCAN driver + SDK library
  • Fully configurable FlexCAN driver. Access and control 2 separate CAN buses from your application with full configuration and timing control. Our High Performance FlexCAN driver for real busy CAN buses is available for iMX6 as well.

  • ECSPI driver + SDK library
  • Fully configurable, DMA enabled, Enhanced Configurable SPI driver. All functionality offered by the iMX6 is supported and configurable in our driver. Unfortunately the iMX6 still contains the same silicon bug as on the iMX53, but at least our driver warns you when you hit this condition.

  • GPT driver
  • Use the General Purpose Timer from within your application. Full control over counters, interrupts, etc.

  • USB Camera driver
  • Configured and ready for iMX6.

  • Memory Access Utility driver, SDK and application
  • For easy debugging and direct hardware access from within CE. Similar functionality as memtool in Linux.

  • SATA
  • Fully functional SATA driver with much faster drive detection algorithm and support for very large disks.

  • Complete bootloader independence
  • The low-level kernel initialization code takes care of everything needed by Windows Embedded Compact. It does not depend on any configuration done by the bootloader. This means you can choose whatever bootloader you fancy. You can use our included and feature-rich eboot, or any other bootloader you like better.

  • Fully tested DDR3 setup code
  • Per board DDR3 stress testing done (FSL DDR3 Stress Test Tool) and DDR3 configured with optimal settings.

  • Included JTAG & DDR3 scripts for Lauterbach TRACE32
  • Just in case you need it.

The above is of course on top of the standard functionality:

  • UARTs (5)
  • Audio (SGTL5000)
  • Camera (CMOS)
  • I2C
  • Ethernet
  • USB (Host, Client & OTG)
  • USDHC/SDIO ports (4)
  • Display:
    • HDMI
    • LVDS (including Touch)
    • GPU (HW 2D, 3D & vector graphics acceleration)
    • VPU (HW Video acceleration)
    • Silverlight (OpenGL & DDraw)

Opal6 DevKit

Supporting various boards

  • Supporting the open source RIoTboard design by Element14 (iMX6 Solo)
  • Supporting the Opal6 module and development board by Device Solutions (iMX6 Solo, DualLite, Dual, Quad, DualPlus & QuadPlus)
  • Supporting the QMX6 modules and development boards by Congatec (iMX6 Solo, Dual Lite, Dual and Quad)
  • Supporting the SABRE Lite board by Element14 (iMX6 Quad)
  • Supporting the BD-SL-iMX6 (formerly known as SABRE-Lite) board by Boundary Devices (iMX6 Quad)
  • Supporting the Nitrogen6X board by Boundary Devices (iMX6 Quad)
  • Supporting the Nitrogen6_VM board by Boundary Devices (iMX6 Solo)
  • Supporting the ConnectCore6 board by Digi (iMX6 Quad)
  • Supporting the SABRE Smart Device Platform (SDP) boards by NXP (iMX6 DualLite & Quad)
  • Supporting the SABRE board for Smart Devices (SDB) boards by NXP (iMX6 DualPlus & QuadPlus)
  • Supporting the TS-4900 boards by Technologic Systems (iMX6 Solo & Quad)
  • Supporting the Colibri iMX6 modules and development boards by Toradex (iMX6 Solo & DualLite)
  • Don't forget: Adding support for any board usually takes no more than a day using our BSP!

Our business model
Our business model is all about delivering a high quality BSP that we fully support and stand behind. We want our customers to be able to get to market quicker, without having to spend an enormous amount of time and money on finding and fixing bugs. We sell & support a high quality, tested BSP and if needed our customers can work with GuruCE to add additional functionality or modify functionality specific to the customers needs.

MVP Logo
Dedicated & responsive support from real experts!
You connect directly to the highest level support engineers that will respond to your query within 48 hours with a high quality answer that will help you, not frustrate you.

Is it perfect?
Perfection is something we strive to achieve, but we will not pretend our BSP is perfect. There's always something to improve or functionality to add. We keep working on this BSP, adding new features as we go. With a support contract you get access to all fixes and new features we add to our iMX6 BSP.