For a few weeks Laurent Vivier, Blue Swirl and myself have been working on getting QEMU PowerPC working correctly with recent distributions.
QEMU used to rely on OpenHackWare for the OpenFirmware implementation on PowerPC. It is a very limited implementation (for example it as no Forth support), which is unable to boot most 2.6.x kernels with the OldWorld emulation. It is able to boot recent kernels with the PReP emulation, but things like the PCI bus emulation are not working correctly. Moreover the PReP kernels are gone with the removal of the arch/ppc tree.
OpenBIOS was already used for the OpenFirmware implementation of Sparc 32 and Sparc 64 targets. It now supports PowerPC for the OldWorld emulation. As a result it is now possible to use Debian PowerPC under QEMU emulating an OldWorld machine.
What works?
- Display (partly), keyboard, hard disk, network;
- Booting from CD-ROM or from disk using Quik;
- Installation of Debian Etch or Lenny (but due to a bug in debian-installer quik.conf has to be fixed manually);
- Standard Debian kernels;
- G3 CPU emulation: the testsuite results of the GNU libc 2.7 and of GCC 4.3 (Debian packages) are the same than on a real machine.
- virtio devices
What doesn’t work / has to be done?
- A few devices part of the MacIO chipset are not emulated and/or are replaced by other devices: IDE, SCSI, Ethernet and sound;
- The red and green colors are reversed, in some modes only (in debian-installer for example);
- X only outputs some strange images;
- PCI devices using I/O ports don’t work (like the RTL8029 card, or the RTL8139 card with the 8139too driver).
For those who want to test, an Etch image is available. You will need to compile QEMU by manually given that the version in Debian is too old and that openbios-ppc is still in the NEW queue.
Aurelien,
Thanks for sharing the debian images. I just booted your lenny image with the latest svn version of qemu and it works great. I am interested in building a newer powerpc kernel that boots with qemu, would you mind to share the .config that I could use as a reference or start point for my build.
Thanks again.
Esteban
Esteban, I didn’t built the kernel myself, but used the Debian one instead. You can fetch the .config file from the package.
“quik.conf has to be fixed manually” please tell me how to fix it.
thanks
ashutosh
i’ve just now sucesfully done a CRUX PPC 32bit boot with qemu-0.11 on a Windows XP host. Nice!