Machine check exception. 2.6.20 powerpc tree.
Ramirez-Ortiz, Jorge
Jorge.Ramirez-Ortiz at xerox.com
Wed Jul 18 19:27:22 EST 2007
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
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