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.).

A good place to get started with PowerPC is via the POWER instruction set manual which can be found here . This document contains a complete documentation of the POWER/PowerPC architecture including MMU and SIMD/Vector extensions.

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...

* 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