On Thu, Dec 19, 2024 at 03:17:15PM -0500, Frank Li wrote: > > Thank you very much. I update msi part, so endpoint controller node align > host controller node. > > It should be > msi-map = <0x0000 &its1 0x0000 0x1000>; > > So if your hardware support multi physical function, your can create more > than one pci_test func. Previous version only support one EP func. I see. That seems like an improvement. I will need to ask Rockchip maintainer to drop my msi-parent patch for PCIe EP node then. (Which is currently queued up in for-6.14) However, for the PCIe host node, rk3588 has: iommu-map = <0x0000 &mmu600_pcie 0x0000 0x1000>; For the PCIe endpoint node, rk3588 has: iommus = <&mmu600_pcie 0x0000>; https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/commit/?h=v6.14-armsoc/dts64&id=da92d3dfc871e821a1bface3ba5afcf8cda19805 Is it fine that for the PCIe EP node, we specify iommu mapping using: iommus = <&mmu600_pcie 0x0000>; but the ITS/MSI map will be: msi-map = <0x0000 &its1 0x0000 0x1000>; isn't this a bit inconsistent? The physical function is the "F" in the BDF. Does this mean that: iommus = <&mmu600_pcie 0x0000>; the IOMMU will not be able to distinguish different PCI physical functions from the same PCI device? So two different physical functions on the same PCI device share the same IOMMU mappings? Kind regards, Niklas