mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.3 KiB
47 lines
1.3 KiB
* virtio memory mapped device |
|
|
|
See https://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
|
|
|