bewing wrote:For an x86 machine, always start by getting BIOS info.
I suppose that's pretty safe, but ultimately one must consider EFI as well. The EFI spec does allow for a firmware vendor to provide for 16 bit "compatibility" firmware for "legacy operating systems". That is, your traditional BIOS. However an EFI based machines does NOT have to provide this compatibility either. In my opinion it's best to abstract away the details somehow and provide just a single interface for your kernel to use. Or go the way I, and several others, are going; we use a 'boot stub' (could be a full boot loader or a grub stub kernel) that gathers the appropriate information and passes it to your kernel in a common format. At least in my project the kernel then is not bothered with having to do all that low level probing.
For any other type of machine, it's best to start in the wiki, and see what their boot procedure is. I do not know about PowerPC, but I do not think it has anything that resembles a BIOS.
Just about any kind of PowerPC machine you'll have access to (ie, old Apple hardware) uses OpenFirmware to boot. There's plenty of documents on that floating around the net. GRUB2 sources can handle booting from OF I believe, and there's the yaboot boot loader that is (was?) used by linux. I'm not entirely certain about big IBM Power Architecture machines since it's been many years since I've had access to one, but I believe those use OpenFirmware to boot as well. (And are, for the most part, pretty similar to PowerPC.)
Don't forget that qemu can emulate powerpc (as well as sparc, mips, arm, and many others). Together with projects like coreboot, you can test booting from EFI and OpenFirmware on qemu.