qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Small powerpc system emulation problem with linux


From: Lennart Sorensen
Subject: [Qemu-devel] Small powerpc system emulation problem with linux
Date: Wed, 14 Jan 2009 11:21:40 -0500
User-agent: Mutt/1.5.13 (2006-08-11)

I did a subversion checkout of qemu last week and built it, and no
problems with that part so far.

I noticed it now supports using openbios-ppc32 instead of openhackware,
so I went looking for that and did a subversion checkout of openbios
and the fcode tools.  I used the openbios-elf ppc object as openbios-ppc32
and qemu seems quite happy with that.

I then booted a debian 4.0 (etch) install cd, but the network interface
didn't work (it gave a dumb error about the PCI bar 0 which was clearly
wrong).  I then grabbed a daily build of debian 5.0 (lenny) instead, and
booted that, and then networking worked fine.  I installed debian, and
had no problems until I hit installing the bootloader.

Debian tried to isntall the quik boot loader for oldworld mac's since
that is what /proc/cpuinfo in linux claims to see, even though powermac
g3 blue&white boxes (I have one here) is newworld, as are all powermac's
using openfirmware 3.  newworld systems should use yaboot, but of course
the installer had not setup the partitions for yaboot since it didn't
see a newworld machine, and yaboot's installer refused to run since it
wasn't a newworld machine.  quik boot's installer also refused to run
since it wasn't a supported oldworld machine either.

So I managed to lie to yaboot enough to convince it to run the ofpath
tools and such as if it was a newworld machine, and that all worked
fine, other than failing to access some part of nvram as far as I can
tell.

On rebooting I found that yaboot loaded from the disk, but failed to
load the system.  Turns out debian uses an ancient version of yaboot
that doesn't correctly work on some newer systems, and has issues with
initrd images.  I found a newer binary for yaboot and replaced it in the
bootstrap partition using a loopback mount.  After doing this, it
finally loaded and booted.  I now have a working debian system on qemu.

So the main problems seem to be that the openbios firmware doesn't
include an entry for 'interrupt-controller' which is the entry the linux
kernel looks for to device a machine is newworld rather than oldworld in
the powermac setup.  The other is that debian's yaboot is out of date.

The yaboot problem is being worked on.

So now I am wondering what has to be done to make qemu appear as a
newworld mac, since that is what the machine it claims to emulate is.
Is this simply a mistake in openbios for qemu or does qemu actually
emulate oldworld to some extent?

I tried adding an entry for 'interrupt-controller' following the pearpc
code in openbios, but that just resulted in a failure to boot the linux
kernel, probably because it tried to access the machine as a newworld
box, and couldn't find something it needed.  I wish I knew how to dump
the openfirmware tree on the real powermac g3 to see what it has
compared to what qemu with openbios currently sees.

Any hints would be appreciated.

-- 
Len Sorensen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]