OMAP3 Resume Timing

Posted by Cliff Brake on 2009-12-07 | 3 Comments to Read

One of the most common power management modes for ARM processors is the suspend mode.  In this mode, peripherals are shut down when possible, the SDRAM is put into self-refresh, and the CPU is placed in a low power mode.  A useful bit of information is to know how soon the system can respond to [...]

Linux kernel stats, and long term advantages

Posted by Cliff Brake on 2009-12-01 | Read the First Comment

I just read an interesting interview with Greg Kroah Hartman.  According to Greg, we add 11,000 lines, remove 5500 lines, and modify 2200 lines every single day.  This rate of change is something that few organizations have the resources to match.  It is interesting that Google chose to use the Linux kernel in the Android [...]

Linux PM: OMAP3 Suspend Support

Posted by Cliff Brake on 2009-11-23 | 8 Comments to Read

This article provides an overview of the Linux kernel support for the suspend state in the TI OMAP3.  Power management has always been one of the more difficult parts of a system to get right.  The OMAP3 power management is quite extensive.  There are many levels of very granular control over the entire system.  Initially, [...]

Integrated CAN solutions for Linux

Posted by Cliff Brake on 2009-11-19 | 3 Comments to Read

I just received an email notification from EMS (http://ems-wuensche.com/) that support for their CAN controllers is now in mainline Linux kernels.  The EMS PCI products are supported in 2.6.31, and the CPC-USB product will be supported in 2.6.32.  I’ve used various Linux CAN stacks in the past, but none were as well integrated as the [...]

Best practices for kernel development with OpenEmbedded

Posted by Cliff Brake on 2009-10-13 | Be the First to Comment

A common question is how do you do kernel development with OpenEmbedded?  Typically, OpenEmbedded builds a kernel by checking the source out of a git repository, or by applying patch files to a released version of the kernel.  See the many recipes for examples.  This works very well for a Linux distribution build system, but [...]

Embedded Linux versus Windows CE

Posted by Cliff Brake on 2009-06-20 | Read the First Comment

Occasionally I am asked how Embedded Linux compares with Windows CE.  I have spent the past 5 years doing mostly embedded Linux development, and the previous 5 years doing mostly WinCE development with a few exceptions, so my thoughts are no doubt a little biased toward what I understand best.  So take this with a [...]

Compulab cm-x270 kernel updated to 2.6.29 in OE

Posted by Cliff Brake on 2009-04-24 | Be the First to Comment

The cm-x270 kernel support in OpenEmbedded has just been updated to version 2.6.29.

Wi2Wi W2CBW003 Wifi/Bluetooth module review

Posted by Cliff Brake on 2009-03-19 | Be the First to Comment

The Wi2Wi W2CBW003 is a highly integrated module that provides both Wifi and Bluetooth radios for embedded designs. This module is ideal for embedded designs, as it provides a lot of functionality in a small package and includes standard interfaces like SPI, SDIO and serial that connect with most embedded CPUs. With the [...]

Socketcan CAN-bus drivers added to OpenEmbedded

Posted by Cliff Brake on 2009-01-26 | 10 Comments to Read

I just added a recipe to OpenEmbedded to build the Socketcan kernel modules from the socketcan SVN.  So if you are using the latest OpenEmbedded metadata, you can:

bitbake socketcan-modules
scp <oedir>/build/angstrom-2008.1/tmp/deploy/glibc/ipk/<machine>/socketcan-modules_0.0+svnr917-r0_cm-x270.ipk  root@<target IP address>:

and then on the target system:

opkg install socketcan-modules_0.0+svnr917-r0_cm-x270.ipk
opkg files socketcan-modules

Package socketcan-modules (0.0+svnr917-r0) is installed on root and has the following files:
/lib/modules/2.6.27/extra/net/can/can-bcm.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/ems_pci.ko
/lib/modules/2.6.27/extra/net/can/can-raw.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/sja1000.ko
/lib/modules/2.6.27/extra/drivers/net/can/softing/softing.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/ems_pcmcia.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/sja1000_platform.ko
/lib/modules/2.6.27/extra/drivers/net/can/can-dev.ko
/lib/modules/2.6.27/extra/drivers/net/can/softing/softing_cs.ko
/lib/modules/2.6.27/extra/drivers/net/can/sja1000/pipcan.ko
/lib/modules/2.6.27/extra/drivers/net/can/mcp251x.ko
/lib/modules/2.6.27/extra/net/can/can.ko
/lib/modules/2.6.27/extra/net/can/can-isotp.ko
/lib/modules/2.6.27/extra/drivers/net/can/vcan.ko
Then to use [...]

Fix for PXA270 MMC/SD Controller Write Corruption

Posted by Cliff Brake on 2009-01-17 | Be the First to Comment

During system verification for a customer, we noticed occasional failures when writing to a SD card using the Marvell PXA270 MMC/SD controller.  The failure is a 4KB block of data is shifted on byte, where the first byte is duplicated and the last byte is dropped. The test app that found this problem is available [...]

How to implement an interrupt driven GPIO input in Linux

Posted by Cliff Brake on 2009-01-10 | 3 Comments to Read

With Linux, some of the things that seem like they should be easy are not — at least at first glance.  For example, how do you read an interrupt driven GPIO input in a Linux application?  With simpler microcontroller systems, this is straightforward, but with a system like Linux, you have to navigate through several [...]

Linux Input Testing and Debugging

Posted by Cliff Brake on 2009-01-09 | Be the First to Comment

The Linux input layer has made a lot of progress in recent years.  When writing a new input driver (such as keyboard, trackball, etc), it is useful to be able to monitor input events using a test application.  This article describes two ways to accomplish this using kernel input debugging, and the evtest utility.
kernel input [...]

Should you be using monotonic timers?

Posted by Cliff Brake on | Be the First to Comment

In a previous article (http://bec-systems.com/web/content/view/78/9/ ), I covered some of the basics of Linux timers.  Any time you are doing any type of fixed time delay in a program, you should really be using monotonic times, so the delay will not be affected by system time changes.  In an effort to save cost, some embedded [...]

Compulab cm-x270 kernel update to 2.6.24

Posted by Cliff Brake on | Be the First to Comment

The kernel support in OpenEmbedded for the Compulab cm-x270 has been updated to version 2.6.24.  The 2.6.24 kernel opens up several possibilities including better real time and high resolution timer functionality, an improved SD Card driver, and a full SDIO stack with support for SDIO Wifi devices.  Also included is a patch to set the [...]

Marvell Embedded SDIO Wifi Success

Posted by Cliff Brake on | Read the First Comment

As detailed in the article I wrote back in September of 2007 (http://bec-systems.com/web/content/view/75/9/), getting  embedded wifi modules functioning is not a simple task.  However, due to recent advances in the Linux kernel, it looks like a viable solution for low-mid volume products is emerging.  This article provides a few details on how to get a [...]