Back to home page

OSCL-LXR

 
 

    


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.