summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/arm/xen.yaml
blob: bad077a112c9155da0be95971444b7584d3a2476 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/xen.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Xen hypervisor

maintainers:
  - Stefano Stabellini <sstabellini@kernel.org>

description:
  Xen ARM virtual platforms shall have a top-level "hypervisor" node with
  the properties defined below.

properties:
  $nodename:
    pattern: '^hypervisor(@[0-9a-f]+)?$'

  compatible:
    description:
      Specifies the Xen hypervisor. The version of the Xen ABI is encoded
      in the first item as "xen,xen-<version>", followed by the generic
      "xen,xen" string.
    items:
      - pattern: '^xen,xen-[0-9]+\.[0-9]+$'
      - const: xen,xen

  reg:
    description: |
      Base physical address and size of the regions in memory where special
      resources should be mapped to, using a HYPERVISOR_memory_op hypercall.

      Region 0 is reserved for mapping the grant table and must always be
      present. The memory region must be large enough to map the whole grant
      table (it is larger or equal to gnttab_max_grant_frames()).

      Regions 1...N are extended regions (unused address space) for mapping
      foreign GFNs and grants. They might be absent if there is nothing to
      expose.
    minItems: 1

  interrupts:
    description:
      The interrupt used by Xen to inject event notifications.
      A GIC node is also required.
    maxItems: 1

  uefi:
    type: object
    description:
      Node populated by Xen to support UEFI on Xen ARM virtual platforms.
      The format and meaning of the "xen,uefi-*" parameters are similar to
      those in Documentation/arch/arm/uefi.rst, but are provided by the Xen
      hypervisor together with a set of UEFI runtime services implemented via
      hypercalls.

    properties:
      xen,uefi-system-table:
        description: Guest physical address of the UEFI System Table.
        $ref: /schemas/types.yaml#/definitions/uint64

      xen,uefi-mmap-start:
        description: Guest physical address of the UEFI memory map.
        $ref: /schemas/types.yaml#/definitions/uint64

      xen,uefi-mmap-size:
        description: Size in bytes of the UEFI memory map pointed to by xen,uefi-mmap-start.
        $ref: /schemas/types.yaml#/definitions/uint32

      xen,uefi-mmap-desc-size:
        description: Size in bytes of each entry in the UEFI memory map.
        $ref: /schemas/types.yaml#/definitions/uint32

      xen,uefi-mmap-desc-ver:
        description: Version of the mmap descriptor format.
        $ref: /schemas/types.yaml#/definitions/uint32

    required:
      - xen,uefi-system-table
      - xen,uefi-mmap-start
      - xen,uefi-mmap-size
      - xen,uefi-mmap-desc-size
      - xen,uefi-mmap-desc-ver

    additionalProperties: false

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    hypervisor@b0000000 {
        compatible = "xen,xen-4.3", "xen,xen";
        reg = <0xb0000000 0x20000>;
        interrupts = <1 15 0xf08>;

        uefi {
            xen,uefi-system-table = /bits/ 64 <0x1301415>;
            xen,uefi-mmap-start = /bits/ 64 <0x7591400>;
            xen,uefi-mmap-size = <0x1800>;
            xen,uefi-mmap-desc-size = <0x30>;
            xen,uefi-mmap-desc-ver = <1>;
        };
    };
...