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 UltraLight, ULL, 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 and read what our customers say about our BSP.

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 OptionsWe 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-A7 and 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 many 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.

  • High Assurance Boot (HAB)
  • Out-of-the-box support for High Assurance Boot, aka HAB. Enabling HAB is as easy as checking a box in our BSP catalog. Bootloader and kernel images are signed automatically when you build your OS Design. The whole process is seamless integrated into the CE build system.

  • One for all!
  • Our BSP supports the iMX6 UltraLight, ULL, Solo, DualLite, Dual, DualPlus, Quad and QuadPlus processor range, so you can scale your HW design up or down with ease.

  • 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.

  • Display clone support, including automatic scaling
  • Clone the primary display to any secondary display. Configure your primary and secondary display in the bootloader, enable Clone Mode, and you're done! The primary display image will be scaled up or down automatically if the resolution of the secondary display is different from the primary display resolution.

  • Multi display bootsplash support
  • Show a bootsplash image on all displays milliseconds after power is applied.

  • 100% flicker-free from boot splash to CE
  • Absolutely no flicker from boot splash image to CE desktop or your application.

  • 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).

  • REAL Production Quality Code
  • All hardware definitions name-synchronized with the iMX6 Reference Manuals. 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 NXP/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, clocking, drivers, etc.
    We just don't believe in binary. Luke would never have gotten so far if he had to "use the binary"... ;-)

  • Template Device Driver
  • We've included a fully functional template driver that can be used as a starting point for developing your own drivers. The template driver contains code to retrieve configuration settings from the registry, mapping hardware, starting and stopping an interrupt handler, power management, IOCTL handling, and SDK and application code showing how to use the SDK.

  • Very easy to add support for your custom board
  • All board specific settings are contained in a single folder. All you need to add support for your custom board is an xml design file (created with NXP's Config tool for i.MX) and we will generate a header file with all your board specific settings for you.

  • 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.

  • CEWriter
  • Our CEWriter tool allows you to very quickly and easily prepare an SD card or SATA drive with a bootloader, kernel and splash image. No more super slow and cumbersome use of the old and outdated cfimager. Welcome to the 21st century!

  • Prepare eMMC from SD
  • Our bootloader allows you to flash a soldered-down eMMC chip with the firmware files stored on an SD card. This means you can use our CEWriter tool to prepare the SD, boot the device and copy the firmware partition on eMMC through a simple bootloader menu option.

  • CE Updater Application and Library
  • Update the bootloader, kernel and bootsplash image from within CE. You can use the supplied CEUpdater application or call the flashupd library functions from your application.

  • 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 a myriad of LVDS displays, HDMI resolutions and LCDs
  • Including various up to 16 points multi-touch capacitive and resistive touch controllers.

  • Hive based registry support
  • Destination fully configurable through the catalog. No difficult and error-prone registry modifications required.

  • Mount as root support
  • Medium to mount as root fully configurable through the catalog. No difficult and error-prone registry modifications required.

  • File-system options
  • Need TexFAT with write-through enabled? Simple set the options in our catalog. No difficult and error-prone registry modifications required.

  • GPIO driver + SDK library
  • Control any (free) GPIO pin from your application. Configure reserved pins in the registry.

  • 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.

  • PWM driver
  • Use any supported PWM channel from within your application. Full control over all available PWM features.

  • WDOG driver
  • Control the iMX6 hardware watchdogs directly from your application.

  • 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.

  • EEMBC’s CoreMark®
  • Benchmark the performance of your device and compare it against other devices or configurations.

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

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

  • ADCs (on UL/ULL)
  • UARTs (5)
  • Audio (SGTL5000, WM8962, AIC310x)
  • Camera (CMOS)
  • I2C
  • Ethernet
  • USB (Host, Client & OTG)
  • USDHC/SDIO ports (4)
  • Display:
    • HDMI
    • LVDS (including Touch)
    • GPU (HW 2D, 3D & vector graphics acceleration)
    • OpenGL-ES, OpenVG, OpenCL.

    • VPU (HW Video acceleration)
    • Silverlight (OpenGL & DDraw)

Supporting an ever growing list of boards

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.

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.