Spracherkennung für: .yaml vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
# SPDX-License-Identifier: (GPL-
2.
0-only OR BSD-
2-Clause)
%YAML
1.
2
---
$id:
http://devicetree.org/schemas/virtio/pci-iommu.yaml#
$schema:
http://devicetree.org/meta-schemas/core.yaml#
title: virtio-iommu device using the virtio-pci transport
maintainers:
- Jean-Philippe Brucker <jean-philippe@linaro.org>
description: |
When virtio-iommu uses the PCI transport, its programming interface is
discovered dynamically by the PCI probing infrastructure. However the
device tree statically describes the relation between IOMMU and DMA
masters. Therefore, the PCI root complex that hosts the virtio-iommu
contains a child node representing the IOMMU device explicitly.
DMA from the IOMMU device isn't managed by another IOMMU. Therefore the
virtio-iommu node doesn't have an "iommus" property, and is omitted from
the iommu-map property of the root complex.
allOf:
- $ref: /schemas/pci/pci-device.yaml#
properties:
# If compatible is present, it should contain the vendor and device ID
# according to the PCI Bus Binding specification. Since PCI provides
# built-in identification methods, compatible is not actually required.
compatible:
oneOf:
- items:
- const: virtio,pci-iommu
- const: pci1af4,
1057
- items:
- const: pci1af4,
1057
reg:
maxItems:
1
'#iommu-cells':
const:
1
required:
- compatible
- reg
- '#iommu-cells'
additionalProperties: false
examples:
- |
bus {
#address-cells = <
2>;
#size-cells = <
2>;
pcie@
40000000 {
device_type = "pci";
#address-cells = <
3>;
#size-cells = <
2>;
reg = <
0x0
0x40000000
0x0
0x1000000>;
ranges = <
0x02000000
0x0
0x41000000
0x0
0x41000000
0x0
0x0f000000>;
/*
* The IOMMU manages all functions in this PCI domain except
* itself. Omit BDF
00:
01.
0.
*/
iommu-map = <
0x0 &iommu0
0x0
0x8
0x9 &iommu0
0x9
0xfff7>;
/* The IOMMU programming interface uses slot
00:
01.
0 */
iommu0: iommu@
1,
0 {
compatible = "pci1af4,
1057";
reg = <
0x800
0 0 0 0>;
#iommu-cells = <
1>;
};
};
pcie@
50000000 {
device_type = "pci";
#address-cells = <
3>;
#size-cells = <
2>;
reg = <
0x0
0x50000000
0x0
0x1000000>;
ranges = <
0x02000000
0x0
0x51000000
0x0
0x51000000
0x0
0x0f000000>;
/*
* The IOMMU also manages all functions from this domain,
* with endpoint IDs
0x10000 -
0x1ffff
*/
iommu-map = <
0x0 &iommu0
0x10000
0x10000>;
};
ethernet {
/* The IOMMU manages this platform device with endpoint ID
0x20000 */
iommus = <&iommu0
0x20000>;
};
};
...