Hello all,
I read Documentation/devicetree/bindings/pci/pci-iommu.txt (linux-5.10) again.
There is an example (Example(1)).
/ {
#address-cells = <1>;
#size-cells = <1>;
iommu: iommu@a {
reg = <0xa 0x1>;
compatible = "vendor,some-iommu";
#iommu-cells = <1>;
};
pci: pci@f {
reg = <0xf 0x1>;
compatible = "vendor,pcie-root-complex";
device_type = "pci";
/*
* The sideband data provided to the IOMMU is the RID,
* identity-mapped.
*/
iommu-map = <0x0 &iommu 0x0 0x10000>;
};
};
The "iommu-map" property for pcie is expanding the "iommus" property of general bus master.
(That is, mapping between the master and {iommu, master ID} is expanded to
mapping between the range of devices represented by RID (16 bit bus,device,function pair) and {iommu, requester ID ranges})
This is because there can be many masters on the PCIe bus. Yes, I can understand that.
My question is, In arm's SMMUv3 case, how is this rid used in setting up the stream table (or context table)?
Is rid equal to StreamID in SMMUv3?
Any comment or explanation will be really appreciated.
Thank you!
Chan Kim
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies