From: Rob Landley <rob@landley.net>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: The OpenBIOS Mailinglist <openbios@openbios.org>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] svn 6658 broke powerpc.
Date: Thu, 19 Mar 2009 14:30:48 -0500 [thread overview]
Message-ID: <200903191430.49383.rob@landley.net> (raw)
In-Reply-To: <f43fc5580903191048n77d3c490v2a1f91ccbeaceade@mail.gmail.com>
On Thursday 19 March 2009 12:48:09 Blue Swirl wrote:
> On 3/19/09, Rob Landley <rob@landley.net> wrote:
> > On Wednesday 18 March 2009 14:11:19 Blue Swirl wrote:
> > > On 3/18/09, Rob Landley <rob@landley.net> wrote:
> > > > On Wednesday 18 March 2009 03:41:05 Alexander Graf wrote:
> > > > > On 18.03.2009, at 00:57, Rob Landley wrote:
> > > > > > Up through svn 6657, I could boot a powerpc kernel with
> > > > > > -kernel. That commit
> > > > > > changed it so now it says:
> > > > > > invalid/unsupported opcode: 00 - 00 - 00 (00000000) fff18f00 1
> > > > > > invalid/unsupported opcode: 00 - 00 - 00 (00000000) fff18f04 1
> > > > > > invalid/unsupported opcode: 00 - 0c - 06 (00009198) 00009214 0
> > > > > >
> > > > > > And dies.
> > > > > >
> > > > > > You can grab a test kernel from
> > > > > > http://landley.net/zImage-powerpc and try
> > > > > > booting it (out of the qemu source directory, this is assuming
> > > > > > you've built it
> > > > > > but haven't installed it yet) via:
> > > > > >
> > > > > > ppc-softmmu/qemu-system-ppc -kernel zImage-powerpc \
> > > > > > -append "console=ttyS0 panic=1" -nographic -no-reboot -L
> > > > > > pc-bios
> > > > > >
> > > > > > With svn 6657, it works. (You get kernel boot messages up
> > > > > > until it panics and
> > > > > > dies because it can't find the root filesystem). With 6658 it
> > > > > > dies immediately with the above error message.
> > > > > >
> > > > > > Unfortunately, this means that the 0.10.0 release doesn't work
> > > > > > for powerpc for
> > > > > > me, but svn a couple days _before_ the release did.
> > > > >
> > > > > That specific commit shouldn't have changed anything with respect
> > > > > to ppc32 emulation. The one where your command broken is the
> > > > > openBIOS update.
> > > >
> > > > The commit I pointed to is the openbios update, yes.
> > > >
> > > > > Please try again without -nographic.
> > > >
> > > > It does indeed work without nographic. (It doesn't do anything
> > > > _useful_ for me without nographic, since I'm scripting the emulated
> > > > kernel's behavior through stdin and stdout, but allowing it to pop
> > > > up an SDL window does make it out of openbios and into the kernel.)
> > >
> > > The kernel makes the equivalent of the following calls to OF
> > > interface: finddevice("/") = 0x11d5c
> > > finddevice("/chosen") = 0x1197c
> > > finddevice("/openprom") = 0x11b3c
> > > getprop(0x11b3c, "model", 0x78efeb0, 0x40) = 0xf
> > > getprop(0x11d5c, "stdout", 0x78efea0, 0x4) = 0x4
> > > instance-to-path(0x86ea0, 0x12ad0dc, 0xff) where it crashes because
> > > memmove overwrites all memory.
> > >
> > > But where does this 0x86ea0 come from?
> >
> > No idea, but it worked with the previous openbios, and without
> > --nographic. This is a 2.6.28.8 kernel built with the attached .config.
> >
> > By the way, while binary searching the openbios repository to figure out
> > exactly what commit between 450 and 463 actually caused it to stop
> > working, and I hit a fun little OpenBios hiccup in the top level Makefile
> > of current OpenBios svn:
> >
> > build:
> > @printf "Building..."
> > @for dir in $(ODIRS); do \
> > $(MAKE) -C $$dir > $$dir/build.log 2>&1 && echo "ok." || \
> > ( echo "error:"; tail -15 $$$dir/build.log; exit 1 ) \
> > done
> >
> > You have one too many $ before dir/build.log in the error message, so
> > the error message you get is
> >
> > Building...error:
> > tail: cannot open `/build.log' for reading: No such file or directory
> > make: *** [build] Error 1
>
> I must always have used build-verbose. Should be fixed soon.
>
> > Which took about 15 minutes of head scratching for a newbie like me to
> > track down. (The actual problem was that your
> > config/examples/cross-ppc_rules.xml hardwires TARGET=powerpc-linux-gnu-
> > and my cross compiler just uses powerpc- as the prefix, and overriding
> > TARGET on the make command line doesn't work because you use recursive
> > make, and you aren't doing the ?= conditional assignments that won't
> > overwrite existing environment variable values. I more or less expected
> > it and was running the thing the first time so it would tell me what
> > cross compiler name it expected when it died unable to find it. Easy
> > enough to fix by just editing the darn file, but a mention of it in the
> > README wouldn't go amiss...)
>
> But my tools also use different prefix, powerpc-elf-
> (powerpc-unknown-elf). I compile using:
>
> make build-verbose TARGET=powerpc-elf-
>
> without problems.
Eh, maybe I typoed something. But it would still be nice if the README could
mention TARGET. (Or, for that matter, build-verbose.)
> About the OpenBIOS problem, I've done further debugging. The crash can
> be reproduced with (-nographic -prom-env auto-boot?=false):
And we are beyond my area of expertise.
When I grab openbios-qemu.elf built from svn 479, rename it qemu-system-ppc,
and then fire up qemu with "-L ." it complains it can't find "video.x". Ok,
fine, add video.x to the current directory (that's powerpc code?) and try
again, and it goes:
>> =============================================================
>> OpenBIOS 1.0 [Mar 19 2009 02:56]
>> Configuration device id QEMU version 1 machine id 2
>> CPUs: 1
>> Memory: 128M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,750
Welcome to OpenBIOS v1.0 built on Mar 19 2009 02:56
>> File not found
>> *** Boot failure! No secondary bootloader specified ***
Which is at least a _different_ error, but I have no idea what I did wrong...
I tried building a known working version, but svn is being stroppy:
> $ svn update -r 450
> svn: Target path does not exist
No _idea_ what that means, but apparently svn won't back up from current HEAD
to target 450 without a fight, and won't explain why either. Google is not
helpful here, it talks about merging branches...
Rob
next prev parent reply other threads:[~2009-03-19 19:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 23:57 [Qemu-devel] svn 6658 broke powerpc Rob Landley
2009-03-18 8:41 ` Alexander Graf
2009-03-18 18:28 ` Rob Landley
2009-03-18 19:11 ` Blue Swirl
2009-03-19 3:16 ` Rob Landley
2009-03-19 17:48 ` Blue Swirl
2009-03-19 19:30 ` Rob Landley [this message]
2009-03-19 19:41 ` Blue Swirl
2009-03-21 9:32 ` Blue Swirl
2009-03-21 18:44 ` Rob Landley
2009-03-22 15:14 ` Blue Swirl
2009-03-22 16:54 ` Blue Swirl
2009-03-25 2:30 ` Rob Landley
2009-03-25 2:39 ` Anthony Liguori
2009-03-25 2:50 ` Anthony Liguori
2009-03-25 4:26 ` M. Warner Losh
2009-03-27 18:59 ` Blue Swirl
2009-03-27 19:41 ` Anthony Liguori
2009-03-28 20:41 ` Rob Landley
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=200903191430.49383.rob@landley.net \
--to=rob@landley.net \
--cc=blauwirbel@gmail.com \
--cc=openbios@openbios.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.