Embedded Systems
| Overview | Community |
| Embedded Linux | Embedded PowerPC |
| Embedded Systems HOWTO | Cross-compiling |
| Resources | Example Systems |
PowerPC is a popular choice for relatively high performance embedded systems,
specifically IBM's
4xx family (now sold to AMCC) and
Freescale's
e300, e500, e600, and e700 brands (also known as PowerQUICC I, II, and III;
formerly known as Motorola's 8xx, 8xxx, 5xx, 5xxx families).
PowerPC can be found in applications such as routers, automobiles, multimedia devices, game consoles, and as auxilliary systems inside large servers.
PowerPC can be found in applications such as routers, automobiles, multimedia devices, game consoles, and as auxilliary systems inside large servers.
Embedded PPC developers can usually be found on the
#mklinux irc
channel, and they have their very own
mailing
list too. Patches sent to that mailing list are conveniently tracked in
a web-based patch tracker.
LinuxDevices.com is a good source
of embedded news (though not PowerPC-specific).
Why do embedded companies like Linux?
- they can debug, read, and customize all the source code
- there are no royalties
- it is very easy to develop and debug on workstations and deploy the same code (and sometimes even binaries) to embedded systems
- it's very easy to cross-develop from a desktop architecture to an embedded target
- there are a wide variety of development environments available, from the command line to full IDEs
Why do embedded companies like PowerPC?
- high levels of integration (including IO peripherals) put an entire System on a Chip (SoC), and fewer chips mean cheaper costs and simpler designs
- a wide variety of SoCs with the same processor core mean companies can perfectly fit their product requirements
- PowerPC parts tend to be long-lived
- there is a huge range of performance options — from very low power to 2GHz high-performance — all with the same instruction set
- PowerPC have an excellent power/performance ratio, and have low heat dissipation for tightly-embedded or large server environments
- PowerPC are big-endian and feature sophisticated bit-slicing instructions, both of which are very convenient for data communication and media processing
- PowerPC have various integrated DSP (Digital Signal Processor) options: the 8xx CPM (Communications Processor Module), Altivec/VMX in 74xx and 970, and SPE (Signal Processing Engine) in 85xx processors
The PowerPC Embedded Systems HOWTO is a slightly
outdated but very in-depth document describing all aspects of PPC embedded
systems, covering selection of the CPU, development kits, bootloaders,
kernels, drivers, C libraries, and more.
Since many (though not all!) embedded systems are significantly
underpowered compared to desktop workstations, it's often very
inconvenient to develop and build code directly on the target system.
Cross-compiling is the act of building code on one architecture (like
an x86 workstation) that will run on another (like a PPC embedded
system).
crosstool makes cross-compiling very easy to do. Select your target (e.g. the PPC 860 CPU), run an automated build script, and in a while you have a full toolchain capable of building kernels and userspace executables and libraries for the target system.
crosstool makes cross-compiling very easy to do. Select your target (e.g. the PPC 860 CPU), run an automated build script, and in a while you have a full toolchain capable of building kernels and userspace executables and libraries for the target system.
Here are some external resources that embedded developers may find useful:
- Downloadable Freescale Processor Models
- ppcperflib: a performance-optimized library for IBM 4xx processors (BSD license)
- libaltivec for 74xx and maybe 970 processors
The Kuro Box is an inexpensive, attractive, MPC8241-based
network appliance that ships with Linux in ROM, onboard 10/100 ethernet, ATA,
and USB2.
The CerfCube 405EP is a flexible, tiny, and cute 405-based system that ships with a Debian-based distribution, onboard 10/100 ethernet, serial ports, and a mini-PCI slot for expansion.
The MOAB 3011 is another 405-based board ready for hacking. (Although it comes as a PCI card, it won't function inside a normal workstation.) It has two ethernet ports, serial, and USB, 64 MiB RAM, 128 MiB flash, and RedBoot firmware.
The CerfCube 405EP is a flexible, tiny, and cute 405-based system that ships with a Debian-based distribution, onboard 10/100 ethernet, serial ports, and a mini-PCI slot for expansion.
The MOAB 3011 is another 405-based board ready for hacking. (Although it comes as a PCI card, it won't function inside a normal workstation.) It has two ethernet ports, serial, and USB, 64 MiB RAM, 128 MiB flash, and RedBoot firmware.
Last modified: 11 November 2006