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>;
};
};
...
|