xref: /freebsd/sys/contrib/device-tree/Bindings/arm/xen.txt (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1c66ec88fSEmmanuel Vadot* Xen hypervisor device tree bindings
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotXen ARM virtual platforms shall have a top-level "hypervisor" node with
4c66ec88fSEmmanuel Vadotthe following properties:
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel Vadot- compatible:
7c66ec88fSEmmanuel Vadot	compatible = "xen,xen-<version>", "xen,xen";
8c66ec88fSEmmanuel Vadot  where <version> is the version of the Xen ABI of the platform.
9c66ec88fSEmmanuel Vadot
10e67e8565SEmmanuel Vadot- reg: specifies the base physical address and size of the regions in memory
11e67e8565SEmmanuel Vadot  where the special resources should be mapped to, using an HYPERVISOR_memory_op
12e67e8565SEmmanuel Vadot  hypercall.
13e67e8565SEmmanuel Vadot  Region 0 is reserved for mapping grant table, it must be always present.
14e67e8565SEmmanuel Vadot  The memory region is large enough to map the whole grant table (it is larger
15e67e8565SEmmanuel Vadot  or equal to gnttab_max_grant_frames()).
16e67e8565SEmmanuel Vadot  Regions 1...N are extended regions (unused address space) for mapping foreign
17e67e8565SEmmanuel Vadot  GFNs and grants, they might be absent if there is nothing to expose.
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel Vadot- interrupts: the interrupt used by Xen to inject event notifications.
20c66ec88fSEmmanuel Vadot  A GIC node is also required.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel VadotTo support UEFI on Xen ARM virtual platforms, Xen populates the FDT "uefi" node
23c66ec88fSEmmanuel Vadotunder /hypervisor with following parameters:
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot________________________________________________________________________________
26c66ec88fSEmmanuel VadotName                      | Size   | Description
27c66ec88fSEmmanuel Vadot================================================================================
28c66ec88fSEmmanuel Vadotxen,uefi-system-table     | 64-bit | Guest physical address of the UEFI System
29c66ec88fSEmmanuel Vadot			  |	   | Table.
30c66ec88fSEmmanuel Vadot--------------------------------------------------------------------------------
31c66ec88fSEmmanuel Vadotxen,uefi-mmap-start       | 64-bit | Guest physical address of the UEFI memory
32c66ec88fSEmmanuel Vadot			  |	   | map.
33c66ec88fSEmmanuel Vadot--------------------------------------------------------------------------------
34c66ec88fSEmmanuel Vadotxen,uefi-mmap-size        | 32-bit | Size in bytes of the UEFI memory map
35c66ec88fSEmmanuel Vadot                          |        | pointed to in previous entry.
36c66ec88fSEmmanuel Vadot--------------------------------------------------------------------------------
37c66ec88fSEmmanuel Vadotxen,uefi-mmap-desc-size   | 32-bit | Size in bytes of each entry in the UEFI
38c66ec88fSEmmanuel Vadot                          |        | memory map.
39c66ec88fSEmmanuel Vadot--------------------------------------------------------------------------------
40c66ec88fSEmmanuel Vadotxen,uefi-mmap-desc-ver    | 32-bit | Version of the mmap descriptor format.
41c66ec88fSEmmanuel Vadot--------------------------------------------------------------------------------
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel VadotExample (assuming #address-cells = <2> and #size-cells = <2>):
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadothypervisor {
46c66ec88fSEmmanuel Vadot	compatible = "xen,xen-4.3", "xen,xen";
47c66ec88fSEmmanuel Vadot	reg = <0 0xb0000000 0 0x20000>;
48c66ec88fSEmmanuel Vadot	interrupts = <1 15 0xf08>;
49c66ec88fSEmmanuel Vadot	uefi {
50c66ec88fSEmmanuel Vadot		xen,uefi-system-table = <0xXXXXXXXX>;
51c66ec88fSEmmanuel Vadot		xen,uefi-mmap-start = <0xXXXXXXXX>;
52c66ec88fSEmmanuel Vadot		xen,uefi-mmap-size = <0xXXXXXXXX>;
53c66ec88fSEmmanuel Vadot		xen,uefi-mmap-desc-size = <0xXXXXXXXX>;
54c66ec88fSEmmanuel Vadot		xen,uefi-mmap-desc-ver = <0xXXXXXXXX>;
55c66ec88fSEmmanuel Vadot        };
56c66ec88fSEmmanuel Vadot};
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel VadotThe format and meaning of the "xen,uefi-*" parameters are similar to those in
59*f126890aSEmmanuel VadotDocumentation/arch/arm/uefi.rst, which are provided by the regular UEFI stub. However
60c66ec88fSEmmanuel Vadotthey differ because they are provided by the Xen hypervisor, together with a set
61c66ec88fSEmmanuel Vadotof UEFI runtime services implemented via hypercalls, see
62c66ec88fSEmmanuel Vadothttp://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html.
63