From: lsorense@csclub.uwaterloo.ca (Lennart Sorensen)
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Small powerpc system emulation problem with linux
Date: Wed, 14 Jan 2009 11:21:40 -0500 [thread overview]
Message-ID: <20090114162140.GI29175@csclub.uwaterloo.ca> (raw)
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
next reply other threads:[~2009-01-14 16:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-14 16:21 Lennart Sorensen [this message]
2009-01-14 16:37 ` [Qemu-devel] Small powerpc system emulation problem with linux Aurelien Jarno
2009-01-14 23:08 ` Lennart Sorensen
2009-01-14 23:26 ` Aurelien Jarno
2009-01-14 23:44 ` Laurent Vivier
2009-01-15 16:12 ` Lennart Sorensen
-- strict thread matches above, loose matches on Subject: below --
2009-01-14 16:41 laurent
2009-01-14 23:05 ` Lennart Sorensen
2009-01-14 23:36 ` Laurent Vivier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090114162140.GI29175@csclub.uwaterloo.ca \
--to=lsorense@csclub.uwaterloo.ca \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).