xref: /linux/Documentation/devicetree/bindings/arm/xen.yaml (revision c6cf4441a3a05bb7273ed022f3e56c4fc591da08)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/arm/xen.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Xen hypervisor
8
9maintainers:
10  - Stefano Stabellini <sstabellini@kernel.org>
11
12description:
13  Xen ARM virtual platforms shall have a top-level "hypervisor" node with
14  the properties defined below.
15
16properties:
17  $nodename:
18    pattern: '^hypervisor(@[0-9a-f]+)?$'
19
20  compatible:
21    description:
22      Specifies the Xen hypervisor. The version of the Xen ABI is encoded
23      in the first item as "xen,xen-<version>", followed by the generic
24      "xen,xen" string.
25    items:
26      - pattern: '^xen,xen-[0-9]+\.[0-9]+$'
27      - const: xen,xen
28
29  reg:
30    description: |
31      Base physical address and size of the regions in memory where special
32      resources should be mapped to, using a HYPERVISOR_memory_op hypercall.
33
34      Region 0 is reserved for mapping the grant table and must always be
35      present. The memory region must be large enough to map the whole grant
36      table (it is larger or equal to gnttab_max_grant_frames()).
37
38      Regions 1...N are extended regions (unused address space) for mapping
39      foreign GFNs and grants. They might be absent if there is nothing to
40      expose.
41    minItems: 1
42
43  interrupts:
44    description:
45      The interrupt used by Xen to inject event notifications.
46      A GIC node is also required.
47    maxItems: 1
48
49  uefi:
50    type: object
51    description:
52      Node populated by Xen to support UEFI on Xen ARM virtual platforms.
53      The format and meaning of the "xen,uefi-*" parameters are similar to
54      those in Documentation/arch/arm/uefi.rst, but are provided by the Xen
55      hypervisor together with a set of UEFI runtime services implemented via
56      hypercalls.
57
58    properties:
59      xen,uefi-system-table:
60        description: Guest physical address of the UEFI System Table.
61        $ref: /schemas/types.yaml#/definitions/uint64
62
63      xen,uefi-mmap-start:
64        description: Guest physical address of the UEFI memory map.
65        $ref: /schemas/types.yaml#/definitions/uint64
66
67      xen,uefi-mmap-size:
68        description: Size in bytes of the UEFI memory map pointed to by xen,uefi-mmap-start.
69        $ref: /schemas/types.yaml#/definitions/uint32
70
71      xen,uefi-mmap-desc-size:
72        description: Size in bytes of each entry in the UEFI memory map.
73        $ref: /schemas/types.yaml#/definitions/uint32
74
75      xen,uefi-mmap-desc-ver:
76        description: Version of the mmap descriptor format.
77        $ref: /schemas/types.yaml#/definitions/uint32
78
79    required:
80      - xen,uefi-system-table
81      - xen,uefi-mmap-start
82      - xen,uefi-mmap-size
83      - xen,uefi-mmap-desc-size
84      - xen,uefi-mmap-desc-ver
85
86    additionalProperties: false
87
88required:
89  - compatible
90  - reg
91  - interrupts
92
93additionalProperties: false
94
95examples:
96  - |
97    hypervisor@b0000000 {
98        compatible = "xen,xen-4.3", "xen,xen";
99        reg = <0xb0000000 0x20000>;
100        interrupts = <1 15 0xf08>;
101
102        uefi {
103            xen,uefi-system-table = /bits/ 64 <0x1301415>;
104            xen,uefi-mmap-start = /bits/ 64 <0x7591400>;
105            xen,uefi-mmap-size = <0x1800>;
106            xen,uefi-mmap-desc-size = <0x30>;
107            xen,uefi-mmap-desc-ver = <1>;
108        };
109    };
110...
111