qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] Problem booting qemu-system-ppc with cpu e500XX and machi


From: Alexander Graf
Subject: Re: [Qemu-ppc] Problem booting qemu-system-ppc with cpu e500XX and machine mpc8544ds
Date: Wed, 4 Jul 2012 10:27:38 +0200

On 04.07.2012, at 10:07, Badrinath Sriman wrote:

> Alex & Scott,
> Thanks for your continued support on this issue. While trying to boot netbsd 
> on e500, from a qemu built from the HEAD, using the command,
>                 "qemu-system-ppc -cpu e500v2 -M mpc8544ds -kernel 
> ~/Downloads/netbsd  -nographic -m 1024",
> 
> I get a completely blank output and the process continues to run in the 
> background.
> 
> Turning on qemu -d exec option, gives the following output:
> 
>           "invalid/unsupported opcode: 00 - 00 - 00 (00000000) 00000000 0"

Hrm. So it's executing an instruction that contains only zeros? Interesting :).

> Turning on qemu -in_asm,out_asm options, gives the following output:
> 
> IN: e500_cnputc
> 0x00297620:  lbz     r0,0(r9)
> 0x00297624:  andi.   r10,r0,32
> 0x00297628:  beq+    0x297618
> 
> invalid/unsupported opcode: 00 - 00 - 00 (00000000) 00000000 0
> IN:
> 0x00000000:  .long 0x0

Now that's odd. None of the above instructions could possibly jump to address 0.


> 
> OUT: [size=44]
> 0x01f18de0:  mov    %ebp,(%esp)
> 0x01f18de3:  mov    $0x6,%ebx
> 0x01f18de8:  mov    %ebx,0x4(%esp)
> 0x01f18dec:  mov    $0x21,%ebx
> 0x01f18df1:  mov    %ebx,0x8(%esp)
> 0x01f18df5:  mov    $0x4,%ebx
> 0x01f18dfa:  mov    %ebx,0x25c(%ebp)
> 0x01f18e00:  call   0xbe95c0
> 0x01f18e05:  xor    %eax,%eax
> 0x01f18e07:  jmp    0x13d63b4
> 
> I searched for the invalid/unsupported opcode known issues and then tried by 
> patching in the patch given in:
>         http://lists.gnu.org/archive/html/qemu-devel/2009-12/msg02646.html

If you were hitting this one, you'd see a 0 instruction in the IN: stream. But 
in your case, something is actually jumping to address 0. I suppose it's an 
exception. Try adding "int" to your -d flags.

> 
> I also made sure that the qemu has the patch 
> http://lists.gnu.org/archive/html/qemu-ppc/2012-06/msg00266.html (require 
> libfdt)
> 
> I also tried using the latest openbios-ppc version by using the -bios option, 
> but the problem remains the same. It is trying to access memory location 
> 0x00000000. 

The mpc8544ds machine doesn't support -bios and doesn't use openbios.

> Unfortunately, I do not have a ppc machine to run ppc-gdb. Hence, my i386 gdb 
> is not helping  much.

If you really want to dig into this, a ppc gdb would be _very_ helpful.

> Actually, I think I dont even need a -M mpc8544ds option. Just emulating the 
> e500v2 instruction set with the -cpu e500v2 is enough I guess. I found some 
> recent qemu commits separating dependency of e500 from mpc8544xx, but looks 
> like they are not yet available from the HEAD. Hence couldnt try that.

I don't think that NetBSD would be happy to find an e500v2 core sitting on a U2 
main board. It's a combination that would never exist in the real world.

> Can you please let me know whether I am missing some known issue in bios? If 
> not, advise on how to debug further.

There is no bios :).


Alex




reply via email to

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