Dear Sirs,
I'm facing the same problem using the LS1043ARDB, and I believe I’m still missing something on the RC side.
I’m testing with PCIe controller #2 (same behavior observed on controller #3). For controller #2 I’m using SCFG_G2MSIIR = 0x1572000.
First of all, if I manually write from the CPU to 0x1572000, I correctly receive the MSI interrupt on the GIC, so the SCFG and GIC configuration look fine, as reported in eco56.
Also, I am enabling No‑Snoop = 1 and the coherency mapping, as described in the LS1043A documentation.
When I program the i350 endpoint to generate MSI:
- If I don’t configure any inbound iATU, as soon as the device triggers MSI I receive interrupt 160 (PCIe config/error interrupt).
This makes me think the MSI Memory Write TLP is reaching the RC, but the RC is not able to translate it properly. (if I use legacy interrupt, it trigger the proper legacy interrupt) - If I configure an inbound iATU, the config/error interrupt disappears, but I still don’t receive any MSI on the GIC.
This is the inbound iATU configuration:
writel(0x80000000, pcie_rc->dbi + 0x900);
writel(0x00000000, pcie_rc->dbi + 0x904);
writel(0x01570000, pcie_rc->dbi + 0x90C);
writel(0x00000000, pcie_rc->dbi + 0x910);
writel(0x01573FFF, pcie_rc->dbi + 0x914);
writel(0x01570000, pcie_rc->dbi + 0x918);
writel(0x00000000, pcie_rc->dbi + 0x91C);
writel(0x80000000, pcie_rc->dbi + 0x908);
With this configuration, I’m defining an inbound memory window that maps the PCIe address range 0x01570000 – 0x01573FFF into the same range on the system bus, so that inbound PCIe Memory Write transactions targeting 0x1572000 (SCFG_G2MSIIR for controller #2) should be translated and forwarded to the SCFG block.
With this inbound window enabled, I no longer see the PCIe error interrupt, which seems to confirm that the inbound MSI write is now accepted by the RC. However, I still do not see any MSI interrupt being delivered to the GIC when the endpoint generates MSI.
Could you please confirm if this setup is correct, or if there is any additional RC‑side configuration required to get MSI delivered to the GIC?
Riccardo