Embedded Linux

Finn Schiermer Andersen, July 2000

Summary and Conclusions

Linux will be a major player in the embedded OS landscape. It emerges as the platform of choice for many vendors of various sorts of equipment. Traditionally, embedded systems are based on proprietary kernels and small microcontrollers. This will change. The development in CMOS technology constantly lowers the price difference between 8-bit controllers and low-power implementations of 32-bit general purpose CPUs. Meanwhile, everybody now wants to put their equipment "on the net" requiring TCP/IP and multitasking. Implementing and supporting applications and kernels of this degree of complexity with proprietary software incurs a high cost. Thus, the incentive to replace microcontrollers with general purpose CPUs and in-house developed kernels with a standard operating system is growing rapidly. Putting a linux kernel in your fridge or your TV may sound like a gimmick today, but will make good economical sense tomorrow.

From a research viewpoint, Linux itself (embedded or not) is not interesting. It is just another platform. What is interesting is:

It is not crystal clear to which extent these problems are actually well placed under the RCES program. Surely, we are talking about embedded systems here, but they are not significantly more ressource constrained than your average desktop computer. There will be less than a factor of 10 difference between a high-end desktop and a high-end embedded device running linux in terms of both processing power and memory size.

I believe the most interesting focus in an embedded linux laboratory residing with IT-C would be in design of future services for communicating smart devices. This is a vast open design space ripe with opportunities. IT-C with its novel mix of technicians and designers may be uniqely placed to initiate and/or nurture development in this area. Such activity may (and should) spawn commercial opportunities.

Contents

This document comprises the following sections And finally some links to relevant organisations.

The purpose of this document

The purpose of this document is to investigate the concept of an "embedded linux laboratory" to be established at IT-C in Copenhagen under the RCES (resource constrained embedded systems) program. This document is based on extensive searches on the internet including commercial web-sites, journals related to linux or to embedded systems, mailing-lists and unix usenet newsgroups. The familiar spam-mail title "get paid to surf the net" has taken on new dimensions for me during this work.

Overview of the embedded landscape

Only a part of the embedded landscape is well suited to Linux. Before going into more depth with this part, we'll briefly characterise the embedded landscape to sort out where Linux is relevant.
Four complexity levels
We may separate it into 4 levels or segments according to their complexity. The two top levels are growing in importance as 32-bit embedded processors get cheap. The top layer is especially interesting because it allows us to use existing software with little or no modification.
The importance of the MMU
The MMU allow each process to have its own protected address space. It also protects the kernel from individual processes. It is a powerfull debugging aid during development because it allows the use of memory allocators designed to pinpoint memory administration leaks in applications.

The MMU allow the use of shared libraries. The same code segment may be mapped into the address space of multiple processes. This greatly reduces stress on the working memory as well as on the filesystem. The larger and more complex the platform, the more important is sharing in order to reduce storage requirements.

Technically, shared libraries can be implemented in software. It is currently not known if that is an established option for Linux.

The importance of a Real Time Operating System
Traditionally, real time operating systems (RTOS) have been required by many embedded systems. A RTOS implements strictly priority based scheduling ensuring that the highest priorty thread will always run. Linux, on the other hand, is based on fairness scheduling. Major distributions of Linux for embedded systems now include a (soft) real time scheduler which augments the standard scheduler in the linux kernel.

Meanwhile, the importance of real time constraints is diminishing for two reasons: 1) The processors are getting faster relative to most peripheral equipment, and 2) the peripherals are getting more tolerant because they include more buffering.

Conclusion
Work with embedded Linux should be based on a 32-bit CPU + MMU platform. The levels below either does not run Linux or requires a number of modifications to standard software. Further, the 32-bit - MMU segment will be reduced in size. The cost of an MMU is low in terms of die space, and consequently it will become standard.

The rest of this document reflects this.

Major hardware platforms

There is a strong tendency towards System-on-a-Chip (SoC) solutions. Actually, the RAM and other storage devices will continue to be on their own chips. SoC's usually integrate both a general purpose CPU and most of the I/O controllers present on a standard PC motherboard. To make the level of complexity integrated more visible, a brief presentation of the major architectures follows.
PowerPC
Motorola produces some nifty implementations of the PowerPC architecture. The PowerPC architecture is a typical 32-bit general purpose programming model (64-bit versions exist, but not embedded) of the RISC era. It includes 32 32-bit registers, MMU, and caches. Several SoC's exist, for example the MPC623e whit these features: Visit Motorola for technical details.

PowerPC linux will run on such a beast.

StrongARM
The ARM (Advanced Risc Machine, former Acorn Risc Machine) is an architecture specifically designed for the embedded or low cost, low power markets. ARM was bought by Digital and later sold to Intel who now owns the rights and produces the StrongARM processers. The ARM architechture is a RISC-like 32-bit architecture with 16 registers. It is not ideally suited for high-performance implementations, but works well in the embedded or low-cost segment for which it was designed. The ARM architecture also include the THUMB small-footprint instruction subset, which reduces code bandwidth requirements with about 30%. In contrast to the big RISC machines such as the PowerPC, the code density for ARM corresponds to or is better than x86 code density.

The StrongARM 1110 is the SoC of choice here. It includes the ARM processing core and roughly the same communication facilities as the PowerPC 623e. It does not have a separate communication processor. Visit Intels StrongArm developer site.

ARM Linux will run on such a platform.

Others
Embedded x86's are generally underperformers compared to the RISC players when meassured in performance/watt. On the other hand, Linux for x86 is the most mature linux variant.

MIPS also develops many different low power processors and cores for use in embedded platforms. I've left out the MIPS platform because porting of Linux to mips looks immature

General observation
Linux will usually run on hardware targetted at the WinCE (embedded windows) platform. Consequently, looking for products shipped with WinCE is one way of finding potentially interesting hardware platforms. Currently there are no commerciallay available offerings of handhelds born with Linux. Instead, you grab your favourite WindowsCE based handheld and "flash in" the new operating system. Apparently, this may be tricky! (see step 12 in the description)

Embedded Linux distributions

Several distributors specialize in scaled down linux distributions. This not only implies trimming fat from the kernel itself, but also includes lightweight implementations of other (user-space) infrastructure components, such as the windowing system.

Some suppliers:

Many more can be reached through LinuxDevices web portal.

Unfortunately, specific combinations of hardware and linux distributions are untested. This is most likely because the development of embedded hardware is going very fast at the moment. We will have to get a suitable hardware platform along with several linux distributions and try them out.

Interesting Products

Products are combinations of a hardware platform, an OS (often WinCE) and tailor made applications. Of the five products introduced below are 3 handheld computers, one single-board-computer and a smartcard. The 3 handhelds are all based on the StrongARM platform, while the single-board-computer is based on PowerPC. The smartcard is based on a low power derivative from the old MC68K series.

They form a representative picture of the current emerging market:

Itsy
The Itsy is a pocket computer developed as a research project by DEC Western Research Lab in 1998. It is not a commercial product, but all schematics are available on the net allowing you to build one by yourself. The Itsy is based on the StrongARM architecture.
Ipaq
The Ipaq (Bitsy) is a WinCE based handheld developed and sold by Compaq. Compaq also provides the instructions for installing Linux on the device instead of WinCE. Compaq has donated the site www.handhelds.org to promote handheld computers. View a photo of the Ipaq running X. The Ipaq is based on the StrongARM hardware platform.
Yopy
The Yopy is supposed to be the first Linux based handheld. Unfortunately, it appears to be mostly vapourware so far.
Denx TQM
The TQM produced by TQC in germany is more like a traditional single board computer. It is based on the PowerPC embedded processor series. The TQMs are small --- half the size of a credit card --- and comes with up to 64MB of memory. Denx supports a distribution of PowerPC linux specifically suited for the card. Denx also supports deployment of custom solutions.
smartdata.ch
The swiss company, Smartdata (try article, if server unavailable), has developed what appears to be the smallest running Linux installation yet: a smart card 2.9mm thick with 2Mb ram, 4Mb flash and Linux. It is capable of running a web server. Unlike the other products it runs a version of uClinux and does not have a MMU.
recomendations
We should by an Ipaq to get hands-on experience with this kind of device and with the product development cycle suited for it. If/when the Yopy leaves the vapourware state, it would provide the easiest way to obtain a handheld Linux.

Interesting Links

Magazines, Journals and Articles
The most important portals are: Two sample articles: Take a look at Linux strafes the embedded landscape or One-chip Linux systems hasten arrival of Post-PC Era.
A Good Laugh
For a good laugh check out deepLinux and look under "about us:company".

Other organisations
Two other organisations to watch:

Directions

Going further requires some hands-on experience. I recommend buying an IPaq and trying out the recipes for installing Linux, and/or buying an evaluation board (starter kit) for TQM modules and Denx customised Linux distribution.

Finally, but perhaps most importantly, some kind of vision or statement of purpose is needed to advance the idea of an embedded linux lab further.