David Gibson's Writings

Device trees for embedded systems (2006)

We present a method for booting a PowerPC Linux kernel on an embedded machine. To do this, we supply the kernel with a compact flattened-tree representation of the system's hardware based on the device tree supplied by Open Firmware on IBM servers and Apple Power Macintosh machines.

The "blob" representing the device tree can be created using dtc - the Device Tree Compiler - that turns a simple text representation of the tree into the compact representation used by the kernel. The compiler can produce either a binary "blob" or an assembler file ready to be built into a firmware or bootwrapper image.

This flattened-tree approach is now the only supported method of booting a ppc64 kernel without Open Firmware, and we plan to make it the only supported method for all powerpc kernels in the future.

This paper was presented at linux.conf.au 2006. Download paper in PDF, or OpenOffice slides.

Linux on the eLAP (2003)

This paper looks at Linux running on IBM's PowerPC 405LP PDA Reference Design (also known as the Embedded Linux Application Platform or eLAP). As the name suggests, this is reference design for a PDA based on the PowerPC 405LP CPU. We look at some of the features of the CPU and hardware, and some of the issues involved in running Linux on such a device.

This paper was presented at the UKUUG Linux 2003 conference. Download PDF.

Device discovery and power management in embedded systems (2003)

This paper covers issues in device discovery and power management in embedded Linux systems. In particular, we focus on the IBM PowerPC 405LP (a "system-on-chip" CPU designed for handheld applications) and the Arctic-2 PDA reference design based upon it. Peripherals in embedded systems are often connected in an ad-hoc manner and are not on a bus which can be scanned or probed. Thus the kernel must have knowledge of what devices are present built in at compile time. We examine how the new unified device model provides a clean method for representing this information, while allowing good re-use of code from machine to machine. The 405 LP includes a number of novel power management features, in particular the abilty to very rapidly change CPU and bus frequencies. We also examine how the device model provides a framework for representing constraints the peripherals and their interconnections place upon allowable frequencies and other information relevant to power management.

This paper was presented at OLS 2003. Download PDF.

Linux on the PowerPC 4xx (2002)

The 4xx series is a family of PowerPC processors designed for embedded applications. These processorors are in the high end for the embedded space: they are reasonably powerful, although slow compared to a workstation processor, and they have an MMU which although basic compared to a general purpose CPU is sufficient to fully support a virtual memory operating system like Linux.

The 4xx processors are designed for building single board computers (SBC), so each has various peripheral devices (e.g. Ethernet controller, serial port, I2C) built into the chip itself. This talk will look at how the Linux kernel takes advantage of these chips' features and works around their peculiarities. We will focus particularly on the 405GP, but also look at some of the features of other processors in the series.

This paper was presented at the AUUG conference in 2002. Download PDF or Magicpoint slides.

Wireless networking with Linux and IEEE 802.11b (2001)

This paper was presented at Linux-Kongress 2001 in Enschede, The Netherlands and also at linux.conf.au 2002 in Brisbane, Australia. Download Postscript or accompanying Magicpoint slides.

david AT gibson.dropbear.id.au
Last modified Monday, 13-Feb-2006 14:28:12 AEDT