Subject: Re: machine check in kernel for a mpc870 board

From: Scott Wood <[email-masked]>
Date: Wed, 30 Jun 2010 11:16:53 -0500

On 06/30/2010 01:14 AM, Shawn Jin wrote:
> Hi Scott,
>
>>> Bus Fault @ 0x00404c40, fixup 0x00000000
>>> Machine check in kernel mode.
>>> Caused by (from msr): regs 07d1cb80 Unknown values in msr
>>> NIP: 00404C40 XER: 00000000 LR: 00404C24 REGS: 07d1cb80 TRAP: 0200 DAR: 00000001
>>> MSR: 00001002 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00
>>
>> Can you look up the source line/instruction corresponding to 0x404c40, in
>> the wrapper ELF file?
>
> I'm not sure how to look up it.

Use a powerpc gdb on the wrapper ELF file, and do "li *0x404c40" and/or 
"i li *0x404c40".

Or use a powerpc addr2line.

> But I used the BDI to dump the
> instructions in which you may find some clue? These should be kernel
> code, right? Maybe the gdb can help to de-assemble them?

Not easily (Format letter "i" is meaningless in "print" command, it 
says...) and there'd be no context about what part of the source code it 
corresponds to...

> 00404c40 : 0xa00a0000  -1609957376  ....

But this is a 16-bit load from r10, which is from your previous register 
dump is FF0009C0.

Does u-boot on your board put IMMR somewhere other than 0xff000000?  If 
so, you'll need to update the device tree to reflect this.

-Scott