48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
|
* virtio memory mapped device
|
||
|
|
||
|
See http://ozlabs.org/~rusty/virtio-spec/ for more details.
|
||
|
|
||
|
Required properties:
|
||
|
|
||
|
- compatible: "virtio,mmio" compatibility string
|
||
|
- 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
|