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:[EMAIL PROTECTED] > 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: > >> 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 > > _______________________________________________ Linuxppc-embedded mailing list Linuxppc-embedded@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded