xref: /openbmc/linux/Documentation/devicetree/bindings/arm/xen.txt (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1c43cdfbcSStefano Stabellini* Xen hypervisor device tree bindings
2c43cdfbcSStefano Stabellini
3c43cdfbcSStefano StabelliniXen ARM virtual platforms shall have a top-level "hypervisor" node with
4c43cdfbcSStefano Stabellinithe following properties:
5c43cdfbcSStefano Stabellini
6c43cdfbcSStefano Stabellini- compatible:
7c43cdfbcSStefano Stabellini	compatible = "xen,xen-<version>", "xen,xen";
8c43cdfbcSStefano Stabellini  where <version> is the version of the Xen ABI of the platform.
9c43cdfbcSStefano Stabellini
1054bb4a91SOleksandr Tyshchenko- reg: specifies the base physical address and size of the regions in memory
1154bb4a91SOleksandr Tyshchenko  where the special resources should be mapped to, using an HYPERVISOR_memory_op
1254bb4a91SOleksandr Tyshchenko  hypercall.
1354bb4a91SOleksandr Tyshchenko  Region 0 is reserved for mapping grant table, it must be always present.
1454bb4a91SOleksandr Tyshchenko  The memory region is large enough to map the whole grant table (it is larger
1554bb4a91SOleksandr Tyshchenko  or equal to gnttab_max_grant_frames()).
1654bb4a91SOleksandr Tyshchenko  Regions 1...N are extended regions (unused address space) for mapping foreign
1754bb4a91SOleksandr Tyshchenko  GFNs and grants, they might be absent if there is nothing to expose.
18c43cdfbcSStefano Stabellini
19c43cdfbcSStefano Stabellini- interrupts: the interrupt used by Xen to inject event notifications.
20c43cdfbcSStefano Stabellini  A GIC node is also required.
21c43cdfbcSStefano Stabellini
229d2f145fSShannon ZhaoTo support UEFI on Xen ARM virtual platforms, Xen populates the FDT "uefi" node
239d2f145fSShannon Zhaounder /hypervisor with following parameters:
249d2f145fSShannon Zhao
259d2f145fSShannon Zhao________________________________________________________________________________
269d2f145fSShannon ZhaoName                      | Size   | Description
279d2f145fSShannon Zhao================================================================================
289d2f145fSShannon Zhaoxen,uefi-system-table     | 64-bit | Guest physical address of the UEFI System
299d2f145fSShannon Zhao			  |	   | Table.
309d2f145fSShannon Zhao--------------------------------------------------------------------------------
319d2f145fSShannon Zhaoxen,uefi-mmap-start       | 64-bit | Guest physical address of the UEFI memory
329d2f145fSShannon Zhao			  |	   | map.
339d2f145fSShannon Zhao--------------------------------------------------------------------------------
349d2f145fSShannon Zhaoxen,uefi-mmap-size        | 32-bit | Size in bytes of the UEFI memory map
359d2f145fSShannon Zhao                          |        | pointed to in previous entry.
369d2f145fSShannon Zhao--------------------------------------------------------------------------------
379d2f145fSShannon Zhaoxen,uefi-mmap-desc-size   | 32-bit | Size in bytes of each entry in the UEFI
389d2f145fSShannon Zhao                          |        | memory map.
399d2f145fSShannon Zhao--------------------------------------------------------------------------------
409d2f145fSShannon Zhaoxen,uefi-mmap-desc-ver    | 32-bit | Version of the mmap descriptor format.
419d2f145fSShannon Zhao--------------------------------------------------------------------------------
42c43cdfbcSStefano Stabellini
43c43cdfbcSStefano StabelliniExample (assuming #address-cells = <2> and #size-cells = <2>):
44c43cdfbcSStefano Stabellini
45c43cdfbcSStefano Stabellinihypervisor {
46c43cdfbcSStefano Stabellini	compatible = "xen,xen-4.3", "xen,xen";
47c43cdfbcSStefano Stabellini	reg = <0 0xb0000000 0 0x20000>;
48c43cdfbcSStefano Stabellini	interrupts = <1 15 0xf08>;
499d2f145fSShannon Zhao	uefi {
509d2f145fSShannon Zhao		xen,uefi-system-table = <0xXXXXXXXX>;
519d2f145fSShannon Zhao		xen,uefi-mmap-start = <0xXXXXXXXX>;
529d2f145fSShannon Zhao		xen,uefi-mmap-size = <0xXXXXXXXX>;
539d2f145fSShannon Zhao		xen,uefi-mmap-desc-size = <0xXXXXXXXX>;
549d2f145fSShannon Zhao		xen,uefi-mmap-desc-ver = <0xXXXXXXXX>;
55c43cdfbcSStefano Stabellini        };
569d2f145fSShannon Zhao};
579d2f145fSShannon Zhao
589d2f145fSShannon ZhaoThe format and meaning of the "xen,uefi-*" parameters are similar to those in
59*f8c25662SJonathan CorbetDocumentation/arch/arm/uefi.rst, which are provided by the regular UEFI stub. However
609d2f145fSShannon Zhaothey differ because they are provided by the Xen hypervisor, together with a set
619d2f145fSShannon Zhaoof UEFI runtime services implemented via hypercalls, see
629d2f145fSShannon Zhaohttp://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html.
63