On Tue, Apr 11, 2017 at 5:37 PM, Benjamin Herrenschmidt [via linuxppc] <ml-node+s10917n121182...@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@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@localhost PlxSdk]# lsmod | grep 8000 Plx8000_DMA 69021 0 Plx8000_NT 73848 0 [root@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@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@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.