Re: [PATCH] pci: designware: Set DMA_BYPASS bit in outbound IATU CTRL2 register

From: Sumit Kumar

Date: Tue Sep 08 2026 - 02:21:55 EST




On 9/2/2026 9:47 PM, Manivannan Sadhasivam wrote:
On Wed, Sep 02, 2026 at 08:44:57PM +0530, Krishna Chaitanya Chundru wrote:

On 9/2/2026 7:37 PM, Manivannan Sadhasivam wrote:
On Wed, Aug 26, 2026 at 02:41:20PM +0530, Sumit Kumar wrote:
Outbound IATU apertures are configured with local device-side addresses.
When DMA engine transactions use destination addresses which fall within
an outbound IATU aperture range, they get unintentionally translated by
the IATU, causing the wrong address to be sent on the PCIe link.
This results in data corruption or IOMMU errors at the host if the
translated address is not mapped.

Why are you using the same device address in both DMA and iATU mapping? This
sounds like a mapping problem that you should fix instead.
issue happens, when host address(DMA destination address) matches with the
internal iova address programmed in iATU src address.
As we can cannot address in both,  we need to program iATU in DMA bypass mode,
so DMA transcations will not go through iATU window.

This needs to be explained clearly in the commit message with an example
matching the DWC terminologies such as 'Target Address Registers'.

- Mani

updated in v2.
- Sumit