~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/virtio/pci-iommu.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/virtio/pci-iommu.yaml (Architecture ppc) and /Documentation/devicetree/bindings/virtio/pci-iommu.yaml (Architecture sparc)


  1 # SPDX-License-Identifier: (GPL-2.0-only OR BS      1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2                                           2 %YAML 1.2
  3 ---                                                 3 ---
  4 $id: http://devicetree.org/schemas/virtio/pci-      4 $id: http://devicetree.org/schemas/virtio/pci-iommu.yaml#
  5 $schema: http://devicetree.org/meta-schemas/co      5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6                                                     6 
  7 title: virtio-iommu device using the virtio-pc      7 title: virtio-iommu device using the virtio-pci transport
  8                                                     8 
  9 maintainers:                                        9 maintainers:
 10   - Jean-Philippe Brucker <jean-philippe@linaro     10   - Jean-Philippe Brucker <jean-philippe@linaro.org>
 11                                                    11 
 12 description: |                                     12 description: |
 13   When virtio-iommu uses the PCI transport, it     13   When virtio-iommu uses the PCI transport, its programming interface is
 14   discovered dynamically by the PCI probing in     14   discovered dynamically by the PCI probing infrastructure. However the
 15   device tree statically describes the relatio     15   device tree statically describes the relation between IOMMU and DMA
 16   masters. Therefore, the PCI root complex tha     16   masters. Therefore, the PCI root complex that hosts the virtio-iommu
 17   contains a child node representing the IOMMU     17   contains a child node representing the IOMMU device explicitly.
 18                                                    18 
 19   DMA from the IOMMU device isn't managed by a     19   DMA from the IOMMU device isn't managed by another IOMMU. Therefore the
 20   virtio-iommu node doesn't have an "iommus" p     20   virtio-iommu node doesn't have an "iommus" property, and is omitted from
 21   the iommu-map property of the root complex.      21   the iommu-map property of the root complex.
 22                                                    22 
 23 properties:                                        23 properties:
 24   # If compatible is present, it should contai     24   # If compatible is present, it should contain the vendor and device ID
 25   # according to the PCI Bus Binding specifica     25   # according to the PCI Bus Binding specification. Since PCI provides
 26   # built-in identification methods, compatibl     26   # built-in identification methods, compatible is not actually required.
 27   compatible:                                      27   compatible:
 28     oneOf:                                         28     oneOf:
 29       - items:                                     29       - items:
 30           - const: virtio,pci-iommu                30           - const: virtio,pci-iommu
 31           - const: pci1af4,1057                    31           - const: pci1af4,1057
 32       - items:                                     32       - items:
 33           - const: pci1af4,1057                    33           - const: pci1af4,1057
 34                                                    34 
 35   reg:                                             35   reg:
 36     description: |                                 36     description: |
 37       PCI address of the IOMMU. As defined in      37       PCI address of the IOMMU. As defined in the PCI Bus Binding
 38       reference, the reg property is a five-ce     38       reference, the reg property is a five-cell address encoded as (phys.hi
 39       phys.mid phys.lo size.hi size.lo). phys.     39       phys.mid phys.lo size.hi size.lo). phys.hi should contain the device's
 40       BDF as 0b00000000 bbbbbbbb dddddfff 0000     40       BDF as 0b00000000 bbbbbbbb dddddfff 00000000. The other cells should be
 41       zero. See Documentation/devicetree/bindi     41       zero. See Documentation/devicetree/bindings/pci/pci.txt
 42                                                    42 
 43   '#iommu-cells':                                  43   '#iommu-cells':
 44     const: 1                                       44     const: 1
 45                                                    45 
 46 required:                                          46 required:
 47   - compatible                                     47   - compatible
 48   - reg                                            48   - reg
 49   - '#iommu-cells'                                 49   - '#iommu-cells'
 50                                                    50 
 51 additionalProperties: false                        51 additionalProperties: false
 52                                                    52 
 53 examples:                                          53 examples:
 54   - |                                              54   - |
 55     bus {                                          55     bus {
 56         #address-cells = <2>;                      56         #address-cells = <2>;
 57         #size-cells = <2>;                         57         #size-cells = <2>;
 58                                                    58 
 59         pcie@40000000 {                            59         pcie@40000000 {
 60             device_type = "pci";                   60             device_type = "pci";
 61             #address-cells = <3>;                  61             #address-cells = <3>;
 62             #size-cells = <2>;                     62             #size-cells = <2>;
 63             reg = <0x0 0x40000000  0x0 0x10000     63             reg = <0x0 0x40000000  0x0 0x1000000>;
 64             ranges = <0x02000000 0x0 0x4100000     64             ranges = <0x02000000 0x0 0x41000000  0x0 0x41000000  0x0 0x0f000000>;
 65                                                    65 
 66             /*                                     66             /*
 67              * The IOMMU manages all functions     67              * The IOMMU manages all functions in this PCI domain except
 68              * itself. Omit BDF 00:01.0.           68              * itself. Omit BDF 00:01.0.
 69              */                                    69              */
 70             iommu-map = <0x0 &iommu0 0x0 0x8       70             iommu-map = <0x0 &iommu0 0x0 0x8
 71                          0x9 &iommu0 0x9 0xfff     71                          0x9 &iommu0 0x9 0xfff7>;
 72                                                    72 
 73             /* The IOMMU programming interface     73             /* The IOMMU programming interface uses slot 00:01.0 */
 74             iommu0: iommu@1,0 {                    74             iommu0: iommu@1,0 {
 75                 compatible = "pci1af4,1057";       75                 compatible = "pci1af4,1057";
 76                 reg = <0x800 0 0 0 0>;             76                 reg = <0x800 0 0 0 0>;
 77                 #iommu-cells = <1>;                77                 #iommu-cells = <1>;
 78             };                                     78             };
 79         };                                         79         };
 80                                                    80 
 81         pcie@50000000 {                            81         pcie@50000000 {
 82             device_type = "pci";                   82             device_type = "pci";
 83             #address-cells = <3>;                  83             #address-cells = <3>;
 84             #size-cells = <2>;                     84             #size-cells = <2>;
 85             reg = <0x0 0x50000000  0x0 0x10000     85             reg = <0x0 0x50000000  0x0 0x1000000>;
 86             ranges = <0x02000000 0x0 0x5100000     86             ranges = <0x02000000 0x0 0x51000000  0x0 0x51000000  0x0 0x0f000000>;
 87                                                    87 
 88             /*                                     88             /*
 89              * The IOMMU also manages all func     89              * The IOMMU also manages all functions from this domain,
 90              * with endpoint IDs 0x10000 - 0x1     90              * with endpoint IDs 0x10000 - 0x1ffff
 91              */                                    91              */
 92             iommu-map = <0x0 &iommu0 0x10000 0     92             iommu-map = <0x0 &iommu0 0x10000 0x10000>;
 93         };                                         93         };
 94                                                    94 
 95         ethernet {                                 95         ethernet {
 96             /* The IOMMU manages this platform     96             /* The IOMMU manages this platform device with endpoint ID 0x20000 */
 97             iommus = <&iommu0 0x20000>;            97             iommus = <&iommu0 0x20000>;
 98         };                                         98         };
 99     };                                             99     };
100                                                   100 
101 ...                                               101 ...
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php