Thread (4 messages) flat view 4 messages, 2 authors, 2007-07-18

Re: Machine check exception. 2.6.20 powerpc tree.

From: Kumar Gala <hidden>
Date: 2007-07-18 19:07:18

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@kernel.crashing.org]
Sent: 17 July 2007 17:29
To: Ramirez-Ortiz, Jorge
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: Machine check exception. 2.6.20 powerpc tree.


On Jul 17, 2007, at 9:21 AM, Ramirez-Ortiz, Jorge wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help