Skip headers ("> p e n g u i n p p c . o r g
HomeFAQGet InvolvedTalk to OthersNews ArchivesLinks Elsewhere


:: powerpc linux
:: topics
:: elsewhere
:: international
:: about
:: hosted by
OSU OSL Download fresh PowerPC Linux kernels from ppckernel.org!
:: page options
:: quick links
Development
Hardware Cell
Remote Access Firmware
Community Kernel Source
Compiler & Toolchain Simulators
Performance Altivec/VMX
Documentation Library
Hardware
PowerPC is a big-endian, RISC, 64-bit architecture with 32-bit implementations. 32-bit PPC userland binaries run without modification on 64-bit processors.

The Linux kernel is known to run on the following POWER/PowerPC processors: 601, 603, 604, 750, 74xx (all versions), 970, POWER3, RS64, POWER4, POWER5. It also runs on most variants of these embedded processors (but note that not all boards may be supported): 405, 440, 8xx, 82xx, 83xx, 85xx, 86xx.
Cell
A PowerPC core is at the heart of the Cell processor, and Linux runs on it. Cell information can be found in the following forms:
Remote Access
Free non-root SSH access to PowerPC Linux systems is provided by the following hosts:
Firmware
Many PowerPC systems, including PowerMacintosh and IBM pSeries and RS/6000, use closed-source Open Firmware implementations. Open Firmware provides a powerful Forth-based environment for debugging and boot. The OpenBIOS project has a more organized collection of Open Firmware documentation. (In Linux, the Open Firmware device tree is viewable beneath /proc/device-tree, and the lsprop tool makes browsing more friendly.)

There are a range of other firmwares available for PowerPC, especially because of the variety of PowerPC embedded systems: PowerPC kernels are moving towards requiring a small Open Firmware-style device tree as the only means of passing information from bootloaders/firmware to the kernel. This does not require a full Open Firmware implementation. DTC (Device Tree Compiler) is a tool to create a static device tree, which is adequate for most embedded systems (since their topology will not vary across reboots). DTC is available via a git tree: git://www.jdl.com/software/dtc.git .
Community
PowerPC Linux developers can 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.

In addition, embedded PowerPC Linux developers have some places of their own.
Kernel Source
Although historically PowerPC-specific code was very slow to get into the main kernel trees, these days the official trees should be up-to-date for most (non-embedded) users. However, there are still architecture-specific trees:
Compiler & Toolchain
The latest GNU toolchain releases tend to work as well for ppc32 and ppc64 as for any architecture. If you're interested in cross-compiling, see our short guide to crosstool. If you would like a ppc64 toolchain, please read the ppc64 toolchain information.

IBM's VisualAge C++ compiler, which may have some more advanced PPC optimizations, can be downloaded through a beta program.

The processor-specific glibc optimization project started with optimizations for memcpy, memcmp, and memset on POWER4 and POWER5. It is an extensible framework, ready for all sorts of other optimizations and for other processors. Also relevent to this area are some PowerPC glibc memory benchmarks, comparing the memory throughput of various copying routines in particular as related to MySQL.

The decimal-floating point glibc add-on enables decimal floating point on all architectures, including PowerPC.
Simulators
There are a few simulators usable for PowerPC Linux development, and some are even open source. An IBM developerWorks article gives a brief overview of the open source options: Closed-source yet freely available options include:
Performance
Here are some quick links to tools and resources for performance analysis on PowerPC Linux:

Articles

Tools

Altivec/VMX
Altivec is the Motorola trademark for a technology jointly developed with Apple and IBM (which IBM calls VMX and Apple calls Velocity Engine). It is a Single Instruction Multiple Data (SIMD) instruction set which can process certain types of data much faster than the ordinary CPU instructions can. Altivec is present in Motorola 74xx and IBM 970 processors.

Guides

Architecture

Reference

Documentation Library
See above for information on Altivec.

Guides

Architecture Manuals

Application Binary Interface (ABI) Manuals

Processor Manuals

Performance

Other Resources

Last modified: 21 September 2007