IMX6DQRM Rev4, in chapter 48.3.9.1, specifies that iATU is instantiated inside the PCIe core, translating TLPs in and out of the PCIe core.
Currently, the model faces issues with TLPs using memory addresses not registered on the iATU. The Designware spec (48.3.9.2 for outbound, 48.3.9.3 for inbound) mentions that TLPs should continue without address translation. For inbound access, model uses iATU inbound region 0 for dummy access. However, the Linux Kernel Driver is unaware, leading to the disabling of this region, blocking TLPs. For outbound access, the model didn't implement this, blocking any access outside the iATU outbound list. This patch series addresses these issues separately for inbound and outbound. After applying the patches, the model has been tested with the e1000e Ethernet card, ensuring proper functioning of network transmissions and MSI interrupts. Signed-off-by: Max Hsu <max....@sifive.com> Max Hsu (2): hw/pci-host: Designware: Fix inbound iATU no address match behavior hw/pci-host: Designware: Add outbound iATU no address match behavior hw/pci-host/designware.c | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) -- 2.34.1