qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] Booting AIX on qemu-system-ppc, kernel not started succes


From: Thomas Huth
Subject: Re: [Qemu-ppc] Booting AIX on qemu-system-ppc, kernel not started successfully
Date: Wed, 22 Feb 2012 08:15:03 +0100

Am Tue, 21 Feb 2012 19:47:12 +0800
schrieb Liang Guo <address@hidden>:

> On Mon, Feb 20, 2012 at 7:03 PM, Alexander Graf <address@hidden> wrote:
> >> (qemu) info registers
> >> info registers
> >> NIP 0000000000000040   LR 00000000000cfc2c CTR 00000000000cfc28 XER 
> >> 0000000000000000
> >
> > NIP is 0x40. How did it manage to get that low? If I had to guess, I'd say 
> > this is due to a NULL pointer dereference. Try setting a breakpoint to 
> > address 0 with the gdb stub and see where it comes from. Most likely we're 
> > missing some stuff in the device tree and/or hypercall implementations.
> 
> I add a  breakpoint at *0x0, the nip becomes 0x40 without trigger the
> breakpoint.
> 
> For the kernel entry point is 0x00022E28, then it jumps to 0x22e88,
> the asm code as below:
> 
> (gdb) x/10i $pc
> 0x22e88:        mflr    r13
> 0x22e8c:        lil     r6,1
> 0x22e90:        mfmsr   r7
> 0x22e94:        .long 0x78c7f80e
> 0x22e98:        .long 0x7ce00164
> 0x22e9c:        ics
> 0x22ea0:        rlinm   r3,r3,0,0,31
> 0x22ea4:        rlinm   r5,r5,0,0,31
> 0x22ea8:        ai      r13,r13,-44
> 0x22eac:        .long 0xe82d0078
> 
> After 0x22e9c, NIP becomes to 0x40.
> 
> What the "ics" means ?

"ics" seems to be the same as "isync".
Given that 
        .long 0x78c7f80e = rldimi  r7,r6,63,0
        .long 0x7ce00164 = mtmsrd  r7
I think that the code is trying to switch to 64-bit mode here.
Not sure why this could cause an exception, though.

 Thomas




reply via email to

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