[Top][All Lists]

[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: Badrinath Sriman
Subject: Re: [Qemu-ppc] Problem booting qemu-system-ppc with cpu e500XX and machine mpc8544ds
Date: Wed, 4 Jul 2012 15:07:42 +0530

Thanks for the reply. qemu debug int option gives a continuously growing file 
with the following lines:

Raise exception at 00297620 => 0000000d (00)
invalid/unsupported opcode: 00 - 00 - 00 (00000000) 00000000 0
Raise exception at 00000004 => 00000006 (21)
Raise exception at 00000004 => 00000006 (21)
Raise exception at 00000004 => 00000006 (21)
Raise exception at 00000004 => 00000006 (21)

>From the target-ppc/cpu.h exception definitions, error type 6 is a "Program 
>Exception" and Error code 0x21  is "POWERPC_EXCP_INVAL_INVAL   = 0x01,  /* 
>Invalid instruction   */.

At the address 00297620, the instruction is
 0x00297620: lbz     r0,0(r9)

Does it mean that the lbz instruction is not emulated? I saw in the qemu code 
base that it was emulated.

- Badri.

P.S. Previously, when I was trying with the bootable cdrom netbsd image, I got 
the same exception with -d int option, and hence ignored the -d int, this time.

From: Alexander Graf address@hidden
Sent: Wednesday, July 04, 2012 1:27 AM
To: Badrinath Sriman
Cc: Scott Wood; address@hidden
Subject: Re: [Qemu-ppc] Problem booting qemu-system-ppc with cpu e500XX and 
machine mpc8544ds

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 :).


reply via email to

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