xref: /freebsd/sys/contrib/device-tree/Bindings/virtio/mmio.txt (revision d4eeb02986980bf33dd56c41ceb9fc5f180c0d47)
1* virtio memory mapped device
2
3See https://ozlabs.org/~rusty/virtio-spec/ for more details.
4
5Required properties:
6
7- compatible:	"virtio,mmio" compatibility string
8- reg:		control registers base address and size including configuration space
9- interrupts:	interrupt generated by the device
10
11Required properties for virtio-iommu:
12
13- #iommu-cells:	When the node corresponds to a virtio-iommu device, it is
14		linked to DMA masters using the "iommus" or "iommu-map"
15		properties [1][2]. #iommu-cells specifies the size of the
16		"iommus" property. For virtio-iommu #iommu-cells must be
17		1, each cell describing a single endpoint ID.
18
19Optional properties:
20
21- iommus:	If the device accesses memory through an IOMMU, it should
22		have an "iommus" property [1]. Since virtio-iommu itself
23		does not access memory through an IOMMU, the "virtio,mmio"
24		node cannot have both an "#iommu-cells" and an "iommus"
25		property.
26
27Example:
28
29	virtio_block@3000 {
30		compatible = "virtio,mmio";
31		reg = <0x3000 0x100>;
32		interrupts = <41>;
33
34		/* Device has endpoint ID 23 */
35		iommus = <&viommu 23>
36	}
37
38	viommu: iommu@3100 {
39		compatible = "virtio,mmio";
40		reg = <0x3100 0x100>;
41		interrupts = <42>;
42
43		#iommu-cells = <1>
44	}
45
46[1] Documentation/devicetree/bindings/iommu/iommu.txt
47[2] Documentation/devicetree/bindings/pci/pci-iommu.txt
48