On Tue, Apr 11, 2017 at 5:37 PM, Benjamin Herrenschmidt [via linuxppc]
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
On Tue, Apr 11, 2017 at 5:37 PM, Benjamin Herrenschmidt [via linuxppc]
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.
Is there a way to check out the initiator ID in the driver? I'
I did another test:
- Call dma_set_mask_and_coherent(&pPciDev->dev, DMA_BIT_MASK(32)) in probe;
- Use DMA address or BUS address in DMA
But EHH error remains.
All sources are based on PLX SDK 7.25.
Note: Sample test is in user space. It allocates memory and starts DMA
through PLX API.
The original
Thanks for your replay.
I fixed my test according your suggestion. The CPU physical addresses (0x
1f9e40 and 0x 1f82c0) converted with virt_to_phys() are used ,
instead of DMA addresses, or BUS physical addresses (0x 60a0 and 0x
60c0). However, EEH still reports error.
Memory info
Hi all!
I am porting PLX driver for PEX 8619 to a power8 machine with CentOS-7.3.
The PEX 8619 is used as an NTB (Non-Transparent Bridge).
First, two DMA buffer are allocated with dma_alloc_coherent() and the
physical address are:
src: 0x _6060
dst: 0x _6080
Then, a DMA tr