Freescale ARM Development

FreeScale i.MX chipset support

I am working on support for some FreeScale chips, extending BSPs of the i.MX2x, 3x and 5x series to fit to client needs. I have been especially working on the video path of the i.MX31 and i.MX51 processors to optimize camera performance, video overlay and hardware encoding for challenging imaging applications.

Furthermore, I have interfaced several peripheral and support chips, like the MC13783 Atlas power management IC.

This page collects some utilities and implementation snippets that came along.

btmxc31 boards

Based on the Bluetechnix series of i.MX31 core modules and development kits, I have customized the graphics engine for a series of different uses, like TV out and VGA overlay, plus mpeg4 encoding, working hard on the processor ahb bus limits. Alongside, I have set up preliminary support for the 2.6.30+ kernels. If you're interested in code or adaptation for your problem, drop me a line.

Atlas utils

The current version of atlas-utils, a set of utilities for this chip is 0.1.4:
/prj/imx/atlas-utils-0.1.4.tar.gz

It features two programs:
atlas-regs lets you read and set pmic registers

atlas-charger is a more comfortable way to read out and control your battery charger
Usage: atlas-charger OPTION... FILE...
Options:
-h, --help display this help and exit
-a, --adc channel read from adc channel
-b, --battery read battery voltage (mV)
-d, --disable_charger disable battery charger
-e, --enable_charger v,c enable battery charger v=0..7 ,c=0..7
-l, --licell read backup battery voltage
-L, --licell_charger v enable LiCell? charger (v=0..7)
-D disable LiCell? charger
-v, --verbose output more junk
-V, --version output version information and exit

main charger v7= 4.050, 4.375, 4.150, 4.200, 4.250, 4.300, 3.800, 4.500 V
main charger c7= 0, 70, 177, 266, 355, 443, 532, 621, 709, 798, 886, 975, 1064, 1152, 1596 mA
licell charger v7= 2.50, 2.70, 2.80, 2.90, 3.00, 3.10, 3.20, 3.30 V

As the number tells, it is still in its early stages, so please use with care and at your own risk!
Comments and patches are always welcome.

BspR5 support is working nicely...

OpenEmbedded-based build environment

I have set up an OpenEmbedded-based? build environment, a preview version can be found
on the Studio web page:
http://pervasive.researchstudio.at/portal/oe_btmxc31 (external link)

The OE support has been should work for the standard MX31ADS board (though untestet). I have set up the environment for Bluetechnix' development kit that you can find at http://www.bluetechnix.com (external link).

i.MX31 Video performance

Impemented some more optimizations in the video path. The i.MX31 is slightly limited regarding internal memory bandwidth, but we managed to get a number of cutting-edge combinations running, like:

  • 800x480 pixel preview with video overlay and MPEG4 enoding
  • full-frame VGA output at 50fps with full-screen video overlay (at 8 bit per pixel color depth); parallel recording of MP4 streams works as well, but only at slightly reduced overlay size.