EEH error in doing DMA with PEX 8619

IanJiang ianjiang.cn at gmail.com
Wed Apr 12 18:42:18 AEST 2017


On Tue, Apr 11, 2017 at 5:37 PM, Benjamin Herrenschmidt [via linuxppc]
<ml-node+s10917n121182h95 at n7.nabble.com> wrote:
>
> Another possibility would be if the requests from the PLX have a
> different initiator ID on the bus than the device you are setting up
> the DMA for.
>

Here is the problem, I think.
There are three PEX 8619 devices given in lspci, and there are
supported by two different modules:

[root at localhost PlxSdk]# lspci -nnn | grep 8619
0001:01:00.0 PCI bridge [0604]: PLX Technology, Inc. PEX 8619 16-lane,
16-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA [10b5:8619] (rev
ba)
0001:01:00.1 System peripheral [0880]: PLX Technology, Inc. PEX 8619
16-lane, 16-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA
[10b5:8619] (rev ba)
0001:02:01.0 Bridge [0680]: PLX Technology, Inc. PEX 8619 16-lane,
16-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA [10b5:8619] (rev
ba)

[root at localhost PlxSdk]# lsmod | grep 8000
Plx8000_DMA            69021  0
Plx8000_NT             73848  0


[root at localhost ~]# dmesg | grep Probe
[ 1875.493576] Plx8000_NT: Probe: 8619 10B5 [D1 01:00.1]
[ 1875.493584] Plx8000_NT: Probe: -- Unsupported Device --
...
[ 1875.493867] Plx8000_NT: Probe: 8619 10B5 [D1 02:01.0]
[ 1876.973489] Plx8000_DMA: Probe: 8619 10B5 [D1 01:00.1]

In my test, DMA buffers are allocated with  (bus 2, device 1, function
0) in module Plx8000_NT, but DMA is issued by (bus 1 device 0 function
1) in module Plx8000_DMA. And error of (bus 1 device 0 function 1) is
reported by EEH.


[ 1908.426579] Plx8000_DMA: Ch 0 - DMA 00000000_60600000 -->
00000000_60800000 (65536 bytes)

[root at localhost ~]# dmesg | grep Bus\ Phy
[ 1875.495524] Plx8000_NT:     Bus Phys Addr: 605f0000
[ 1878.096744] Plx8000_DMA:     Bus Phys Addr: 60010000
[ 1892.745698] Plx8000_NT:     Bus Phys Addr: 60600000
[ 1892.746348] Plx8000_NT:     Bus Phys Addr: 60800000


[root at localhost ~]# dmesg | grep bus
[ 1875.495463] Debug Plx_dma_buffer_alloc: bus 2, device 1, function 0
[ 1876.973699] Debug AddDevice: Device bus 1 device 0 function 1
[ 1876.975155] Debug AddDevice: Device bus 1 device 0 function 1
[ 1876.976641] Debug AddDevice: Device bus 1 device 0 function 2
[ 1877.360606] Debug AddDevice: Device bus 1 device 0 function 3
[ 1877.763869] Debug AddDevice: Device bus 1 device 0 function 4
[ 1878.069865] Debug Plx_dma_buffer_alloc: bus 1, device 0, function 1
[ 1892.745446] Debug Plx_dma_buffer_alloc: bus 2, device 1, function 0
[ 1892.746109] Debug Plx_dma_buffer_alloc: bus 2, device 1, function 0
[ 1908.426649] Debug PlxDmaTransferBlock: DMA device bus 1 device 0 function 1
[ 1908.428483] Debug plx_err_detected: Device bus 1 device 0 function 1
[ 1917.490481] Debug plx_slot_reset: Device bus 1 device 0 function 1
[ 1917.490625] Debug plx_resume: Device bus 1 device 0 function 1




--
View this message in context: http://linuxppc.10917.n7.nabble.com/EEH-error-in-doing-DMA-with-PEX-8619-tp121121p121259.html
Sent from the linuxppc-dev mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20170412/ee82bec4/attachment.html>


More information about the Linuxppc-dev mailing list