On 4/10/09, Andreas Färber andreas.faerber@web.de wrote:
Am 10.04.2009 um 14:57 schrieb Blue Swirl:
On 4/10/09, Andreas Färber andreas.faerber@web.de wrote:
[...] It hangs after "Booting file ... with parameters '' Trying ..." (before
"Not a
bootable ELF image").
These are the results of my bisection:
r482 (QEMU r6962) nope r479 (QEMU r6777) nope 1.0 (QEMU r6658 + 9794f74f9c1dd0fbef30ded9e5c14c28a6fa579b) nope ??? (QEMU r6563 + 9794f74f9c1dd0fbef30ded9e5c14c28a6fa579b) nope ??? (QEMU r6273 +
e58ffeb322e2ef88cc23e9505366418bf793316d
w/ --disable-aio) works r237 (QEMU r5262) works
Has anyone recently been successful booting on ppc, could this be some endianness issue? It works fine on OpenSolaris/amd64 host.
It also works on OpenBSD/Sparc64 host, which is big endian. Linux/i386 works too, so 32 bit case is covered.
I doubt that this can be a problem in OpenBIOS, I find QEMU more likely suspect. Can you boot any other big endian targets on PPC, for example PPC?
Yes, ppc-softmmu boots Debian CD fine.
However, ppc64-softmmu booting Debian CD segfaults immediately.
sparc64-softmmu booting Solaris 10 U3 DVD immediately crashes with the following output:
qemu: fatal: Trap 0x0010 while trap level (5) >= MAXTL (5), Error state pc: 0000000000004200 npc: 0000000000004204 General Registers: %g0: 0000000000000000 %g1: 0000000000000000 %g2: 0000000000000000 %g3: 0000000000000000 %g4: 0000000000000000 %g5: 0000000000000000 %g6: 0000000000000000 %g7: 0000000000000000 Current Register Window: %o0: 00000000ffd70000 %o1: 00000000ffd71000 %o2: 000001fff0070000 %o3: 000001fff0000000 %o4: 0000000000000000 %o5: 0000000000000000 %o6: 0000000000000000 %o7: 000001ff00000000 %l0: 000000000fee0000 %l1: 000001ff00000000 %l2: 000001fff0030000 %l3: 0000000000000000 %l4: 0000000000000000 %l5: 0000000000000000 %l6: 0000000000000000 %l7: 0000000000000000 %i0: 0000000000000000 %i1: 0000000000000000 %i2: 0000000000000000 %i3: 0000000000000000 %i4: 0000000000000000 %i5: 0000000000000000 %i6: 0000000000000000 %i7: 0000000000000000
Floating Point Registers: %f00: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 %f04: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 %f08: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 %f12: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 %f16: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 %f20: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 %f24: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 %f28: 000000000.000000 000000000.000000 000000000.000000 000000000.000000 pstate: 0x00000015 ccr: 0x99 asi: 0x00 tl: 5 fprs: 0 cansave: 6 canrestore: 0 otherwin: 0 wstate 0 cleanwin 6 cwp 7 fsr: 0x00000000
Sparc64-softmmu boots Linux (crashes during kernel init) on amd64 and i386 hosts. It also crashes on sparc64, but not that quickly. The screen gets yellow and on serial console there are a few lines:
OpenBIOS for Sparc64 Configuration device id QEMU version 1 machine id 0 Unhandled Exception 0x0000000000000068 PC = 0x00000000ffd1ec04 NPC = 0x00000000ffd1ec08 Stopping execution
The bugs could be in PPC TCG target support (Sparc32/64 translation may call different functions than PPC translation), or Sparc translator could call the code generator wrong way.