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