MPC8572 PCIe error recovery
Reifman, Boris
breifman at ciena.com
Wed Jun 3 14:15:38 EST 2009
We are using the MPC8572 running SMP Linux 2.6.23 kernel. Having
problems reliably recovering from core_fault_in which is generated by
the PCIe 2 Controller (RC) on reception of UR/CA messages. The PCIe
Controller has error detection and interrupts turned on in PEX_ERR_XX
registers. Also, AER capability is enabled via controller configuration
space. The ISR handler which performs recovery action uses the following
epilog: if the ISR is running on the same core (0 or 1) from which the
failed PCIe transaction was made, it increments NIP by 4 and exits. If
the core is different, the ISR sends an IPI message to the other core
which in its turn does all chores and then recovers the execution in a
similar way, i.e., it bumps NIP by 4 and exits. The code works well
when running on core 0; however, the moment it switches to core 1, it
always generates a kernel paging error:
[ 77.169436] Unable to handle kernel paging request for data at
address 0x00000080
[ 77.176899] Faulting instruction address: 0xc0006d94
[ 77.181850] Oops: Kernel access of bad area, sig: 11 [#1]
Anyone has any idea why Core 1 chokes on the code which Core 0 runs
flawlessly? Is there a known problem with 2.6.23 kernel? Should I be
concern with L1/L2 icache state?
Any pointers would be greatly appreciated!
Thanks in advance...
Boris Reifman | Principal Engineer P&T
breifman at ciena.com | 1185 Sanctuary Parkway, Suite 300 | Alpharetta, GA
30009 USA
Direct +1.678.867.3323 | Mobile +1.770.851.3440 | Fax +1.678.867.5101
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20090603/2e375ce1/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 3410 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20090603/2e375ce1/attachment.gif>
More information about the Linuxppc-dev
mailing list