forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/Documentation/devicetree/bindings/virtio/mmio.txt
....@@ -1,6 +1,6 @@
11 * virtio memory mapped device
22
3
-See http://ozlabs.org/~rusty/virtio-spec/ for more details.
3
+See https://ozlabs.org/~rusty/virtio-spec/ for more details.
44
55 Required properties:
66
....@@ -8,10 +8,40 @@
88 - reg: control registers base address and size including configuration space
99 - interrupts: interrupt generated by the device
1010
11
+Required 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
+
19
+Optional 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
+
1127 Example:
1228
1329 virtio_block@3000 {
1430 compatible = "virtio,mmio";
1531 reg = <0x3000 0x100>;
1632 interrupts = <41>;
33
+
34
+ /* Device has endpoint ID 23 */
35
+ iommus = <&viommu 23>
1736 }
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