Machine check exception. 2.6.20 powerpc tree.

Kumar Gala galak at kernel.crashing.org
Thu Jul 19 04:17:51 EST 2007


On Jul 18, 2007, at 4:27 AM, Ramirez-Ortiz, Jorge wrote:

> Hi Kumar
>
> The address we are trying to access corresponds to a mapped device in
> the PCI space
> Attached some additional debugging information (we have  
> instrumented the
> kernel)
>
> Thanks
> jorge
>
>
> INFO [_probe]: Found Device [irq=58]
> INFO [_open]: device opened with irq 58
> INFO [_read]: waiting for interrupt
> INFO [_intr]: ISR 58
>
> PCI1: Error! ERR_DETECT=00000040, ATTR=00516001, addr=80020034,
> data=00050000

So you are getting a master abort from the target.  I think you need  
to look at your PCI device and see what's going on there.

> machine_check_exception: task my_process, MCSR=0x10008, NIP=0x10153530
> Machine check in user mode.
> Caused by (from MCSR=10008): Guarded Load or Cache-Inhibited stwcx.
> Bus - Read Data Bus Error
>
> Call Trace:
> [C7355EF0] [C0006E64] show_stack+0x48/0x19c (unreliable)
> [C7355F20] [C000C04C] machine_check_exception+0x294/0x484
> [C7355F40] [C000E48C] ret_from_mcheck_exc+0x0/0xe0
>
> cat /proc/cpuinfo
> processor       : 0
> cpu             : e500v2
> clock           : 799.500000MHz
> revision        : 2.0 (pvr 8021 0020)
> bogomips        : 99.84
> timebase        : 49968750
> platform        : MPC85xx CDS
> Vendor          : Freescale Semiconductor
> Machine         : MPC85xx CDS (0xff)
> PVR             : 0x80210020
> SVR             : 0x80390220
> PLL setting     : 0x4
> Memory          : 256 MB
> LAW 1           : 00000000, 20000000 -> DDR SDRAM
> LAW 2           : 80000000, 10000000 -> PCI1
> LAW 3           : 90000000, 10000000 -> PCI2
> LAW 4           : a0000000, 10000000 -> PCI Express
> LAW 5           : e1000000, 01000000 -> PCI1
> LAW 6           : e2000000, 01000000 -> PCI2
> LAW 7           : e3000000, 01000000 -> PCI Express
> LAW 8           : f0000000, 10000000 -> Local bus
> DDR 0           : 00000000, 20000000 -> 2/14/10 addr bits
> PCI1 Out_1      : 80000000, 10000000 -> Mem: 80000000
> PCI1 Out_2      : e1000000, 01000000 -> I/O: 00000000
> PCI2 Out_1      : 90000000, 10000000 -> Mem: 90000000
> PCI2 Out_2      : e2000000, 01000000 -> I/O: 00000000
> PCI3 Out_1      : a0000000, 10000000 -> Mem: a0000000
> PCI3 Out_2      : e3000000, 01000000 -> I/O: 00000000
> PCI1 In_1       : 00000000, 20000000 (Internal,R:snoop,W:snoop) <-
> 00000000 PF
> PCI2 In_1       : 00000000, 20000000 (Internal,R:snoop,W:snoop) <-
> 00000000 PF
> PCI3 In_1       : 00000000, 20000000 (Internal,R:snoop,W:snoop) <-
> 00000000 PF
>
>
> ______________________________
>
>
>
> -----Original Message-----
> From: Kumar Gala [mailto:galak at kernel.crashing.org]
> Sent: 17 July 2007 17:29
> To: Ramirez-Ortiz, Jorge
> Cc: linuxppc-embedded at ozlabs.org
> Subject: Re: Machine check exception. 2.6.20 powerpc tree.
>
>
> On Jul 17, 2007, at 9:21 AM, Ramirez-Ortiz, Jorge wrote:
>
>> Running our multithreaded application on ppc8548 (E500 core)
>> generates a machine check exception when trying to access some
>> ASIC's registers mapped on the PCI space (This application maps a
>> PCI device to access its registers)
>>
>>
>>
>> machine_check_exception: task my_process, MCSR=0x10008,  
>> NIP=0x10153530
>>
>> Machine check in user mode.
>>
>> Caused by (from MCSR=10008): Guarded Load or Cache-Inhibited stwcx.
>>
>> Bus - Read Data Bus Error
>>
>>
>>
>> Here is the assembly dump of the region of code containing the
>> offending instruction in user-space, with SRR0 pointing us at
>> 0x10153530 when the exception is raised:
>>
>>
>>
>> 0x10153528 <_ZN2vk7in_le32EPVKj+16>:    lwz     r0,8(r31)
>>
>> 0x1015352c <_ZN2vk7in_le32EPVKj+20>:    lwz     r9,8(r31)
>>
>> 0x10153530 <_ZN2vk7in_le32EPVKj+24>:    lwbrx   r0,0,r0
>>
>> 0x10153534 <_ZN2vk7in_le32EPVKj+28>:    twi     0,r0,0
>>
>> 0x10153538 <_ZN2vk7in_le32EPVKj+32>:    isync
>
> Can you get the code to dump the value of r0.  I'm wondering if
> you're really getting a read data bus error due to the fact that r0
> is pointing to a PCI address that doesn't have a device that will
> respond.
>
> - k
>
>




More information about the Linuxppc-embedded mailing list