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.hsu@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