How to force RC to forward p2p TLPs

From: yu
Date: Sat Dec 22 2018 - 13:19:16 EST


Hi all,

We have a PCIE card which has a PEX8732 switch on-board, and there
are two endpoint SOCs like graphic decoder behind the switch, and by
default the ACS is enabled in 8732.

We use the p2p DMA to transfer data between these two endpoint SOCs,
and if the host server is not enable ACS in BIOS, the p2p works well,
but when ACS is enabled in BIOS, the p2p is always failed. With the
help of a protocol analyzer, we can see that the TLP is redirected to
RC, and RC just discard it.

I tried to find how to make RC forward redirected TLP to its original
target, but nothing found, it seems this is highly related to the RC
vendors.

In the PCIE 4.0 spec, the section of the RC behavior of the p2p
request redirect said that ''implementation-specific logic within the
RC that determines whether the request is directed towards its
original target, or blocked as an ACS Violation error. the algorithms
and specific controls for making this determination are not
architected by this spec''.


So is there some spec or document to describe how to set the RC? Any
suggestion is appreciated.

Regards,
Eric