The translated address is specified by the IOMMU driver. The IOMMUA Memory Request with an address that is not a P2P address, i.e., it
driver ensures that the address is a DMA buffer address instead of any
P2P address in the PCI fabric. Therefore, any translated memory request
will eventually be routed to IOMMU regardless of whether there is ACS
control in the up-streaming path.
is not contained in any bridge aperture, will*always* be routed
toward the RC, won't it?
Isn't that the case regardless of whether
the address is translated or untranslated, and even regardless of ACS?
IIUC, ACS basically causes peer-to-peer requests to be routed upstream
instead of directly to the peer.