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