dt-bindings: virtio-mmio: Add IOMMU description
The nature of a virtio-mmio node is discovered by the virtio driver at probe time. However the DMA relation between devices must be described statically. When a virtio-mmio node is a virtio-iommu device, it needs an "#iommu-cells" property as specified by bindings/iommu/iommu.txt. Otherwise, the virtio-mmio device may perform DMA through an IOMMU, which requires an "iommus" property. Describe these requirements in the device-tree bindings documentation. Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
0b4a7092ff
commit
8447d84e35
@ -8,10 +8,40 @@ Required properties:
|
||||
- reg: control registers base address and size including configuration space
|
||||
- interrupts: interrupt generated by the device
|
||||
|
||||
Required properties for virtio-iommu:
|
||||
|
||||
- #iommu-cells: When the node corresponds to a virtio-iommu device, it is
|
||||
linked to DMA masters using the "iommus" or "iommu-map"
|
||||
properties [1][2]. #iommu-cells specifies the size of the
|
||||
"iommus" property. For virtio-iommu #iommu-cells must be
|
||||
1, each cell describing a single endpoint ID.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- iommus: If the device accesses memory through an IOMMU, it should
|
||||
have an "iommus" property [1]. Since virtio-iommu itself
|
||||
does not access memory through an IOMMU, the "virtio,mmio"
|
||||
node cannot have both an "#iommu-cells" and an "iommus"
|
||||
property.
|
||||
|
||||
Example:
|
||||
|
||||
virtio_block@3000 {
|
||||
compatible = "virtio,mmio";
|
||||
reg = <0x3000 0x100>;
|
||||
interrupts = <41>;
|
||||
|
||||
/* Device has endpoint ID 23 */
|
||||
iommus = <&viommu 23>
|
||||
}
|
||||
|
||||
viommu: iommu@3100 {
|
||||
compatible = "virtio,mmio";
|
||||
reg = <0x3100 0x100>;
|
||||
interrupts = <42>;
|
||||
|
||||
#iommu-cells = <1>
|
||||
}
|
||||
|
||||
[1] Documentation/devicetree/bindings/iommu/iommu.txt
|
||||
[2] Documentation/devicetree/bindings/pci/pci-iommu.txt
|
||||
|
Loading…
x
Reference in New Issue
Block a user