0001 * Xen hypervisor device tree bindings
0002
0003 Xen ARM virtual platforms shall have a top-level "hypervisor" node with
0004 the following properties:
0005
0006 - compatible:
0007 compatible = "xen,xen-<version>", "xen,xen";
0008 where <version> is the version of the Xen ABI of the platform.
0009
0010 - reg: specifies the base physical address and size of the regions in memory
0011 where the special resources should be mapped to, using an HYPERVISOR_memory_op
0012 hypercall.
0013 Region 0 is reserved for mapping grant table, it must be always present.
0014 The memory region is large enough to map the whole grant table (it is larger
0015 or equal to gnttab_max_grant_frames()).
0016 Regions 1...N are extended regions (unused address space) for mapping foreign
0017 GFNs and grants, they might be absent if there is nothing to expose.
0018
0019 - interrupts: the interrupt used by Xen to inject event notifications.
0020 A GIC node is also required.
0021
0022 To support UEFI on Xen ARM virtual platforms, Xen populates the FDT "uefi" node
0023 under /hypervisor with following parameters:
0024
0025 ________________________________________________________________________________
0026 Name | Size | Description
0027 ================================================================================
0028 xen,uefi-system-table | 64-bit | Guest physical address of the UEFI System
0029 | | Table.
0030 --------------------------------------------------------------------------------
0031 xen,uefi-mmap-start | 64-bit | Guest physical address of the UEFI memory
0032 | | map.
0033 --------------------------------------------------------------------------------
0034 xen,uefi-mmap-size | 32-bit | Size in bytes of the UEFI memory map
0035 | | pointed to in previous entry.
0036 --------------------------------------------------------------------------------
0037 xen,uefi-mmap-desc-size | 32-bit | Size in bytes of each entry in the UEFI
0038 | | memory map.
0039 --------------------------------------------------------------------------------
0040 xen,uefi-mmap-desc-ver | 32-bit | Version of the mmap descriptor format.
0041 --------------------------------------------------------------------------------
0042
0043 Example (assuming #address-cells = <2> and #size-cells = <2>):
0044
0045 hypervisor {
0046 compatible = "xen,xen-4.3", "xen,xen";
0047 reg = <0 0xb0000000 0 0x20000>;
0048 interrupts = <1 15 0xf08>;
0049 uefi {
0050 xen,uefi-system-table = <0xXXXXXXXX>;
0051 xen,uefi-mmap-start = <0xXXXXXXXX>;
0052 xen,uefi-mmap-size = <0xXXXXXXXX>;
0053 xen,uefi-mmap-desc-size = <0xXXXXXXXX>;
0054 xen,uefi-mmap-desc-ver = <0xXXXXXXXX>;
0055 };
0056 };
0057
0058 The format and meaning of the "xen,uefi-*" parameters are similar to those in
0059 Documentation/arm/uefi.rst, which are provided by the regular UEFI stub. However
0060 they differ because they are provided by the Xen hypervisor, together with a set
0061 of UEFI runtime services implemented via hypercalls, see
0062 http://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html.