PowerPC Overview

From OSDev Wiki
Jump to: navigation, search

The PowerPC CPU architecture is significantly different from the IA32. Yet still, the architecture of your OS need not differ too much: While the way you address memory on the lowest levels might be different, or the way your SIMD unit operates, you still have a bootloader, a scheduler, a dispatcher, a memory manager etc. etc.

You will be able to transcribe most of the documentation 1:1 to the PowerPC, unless they handle the low levels (interrupt handling, real vs. protected mode etc.).

For the low levels, you'll of course need Motorola (or IBM) docs.

  • Motorola docs are found at http://www.motorola.com / semiconductors / products / 32bit embedded processors / PowerPC / (make your pick) / Documentation.

There are good books on the PowerPC architecture (including MMU and stuff) too, but they're harder to find because they're less demand for it.

But CPU docs won't suffice. You also need info on the motherboard / chipset / boot sequence etc. - and that's where it gets tricky, since there is no such thing as "the PowerPC architecture" - Apple doesn't like giving away that information, and there are many other platforms that might or might not be compatible.

A Linux-on-PPC project exists, and is probably a good place to look for PowerPC info...

/usr/src/linux/arch/ppc/boot/prep/head.S
/*
* Boot loader philosophy:
*      ROM loads us to some arbitrary location
*      Move the boot code to the link address (8M)
*      Call decompress_kernel()
*        Relocate the initrd, zimage and residual data to 8M
*        Decompress the kernel to 0
*      Jump to the kernel entry
*            -- Cort
*/

The BIOS in latest Apple Macintosh is named "Open Firmware". Open Firmware was initially a SPARC-stuff targeted at Sun stations. Extension cards and other hardware of the like that are OpenFirmware compliant should carry a Forth-written initialization code in their ROM. I suppose the main boot rom then scan memory for such ROMs and then interpret the FORTH code on them.

PowerPC Emulators

Personal tools
Namespaces
Variants
Actions
Navigation
About
Toolbox