18c2ecf20Sopenharmony_ci* Xen hypervisor device tree bindings
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciXen ARM virtual platforms shall have a top-level "hypervisor" node with
48c2ecf20Sopenharmony_cithe following properties:
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci- compatible:
78c2ecf20Sopenharmony_ci	compatible = "xen,xen-<version>", "xen,xen";
88c2ecf20Sopenharmony_ci  where <version> is the version of the Xen ABI of the platform.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci- reg: specifies the base physical address and size of a region in
118c2ecf20Sopenharmony_ci  memory where the grant table should be mapped to, using an
128c2ecf20Sopenharmony_ci  HYPERVISOR_memory_op hypercall. The memory region is large enough to map
138c2ecf20Sopenharmony_ci  the whole grant table (it is larger or equal to gnttab_max_grant_frames()).
148c2ecf20Sopenharmony_ci  This property is unnecessary when booting Dom0 using ACPI.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci- interrupts: the interrupt used by Xen to inject event notifications.
178c2ecf20Sopenharmony_ci  A GIC node is also required.
188c2ecf20Sopenharmony_ci  This property is unnecessary when booting Dom0 using ACPI.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciTo support UEFI on Xen ARM virtual platforms, Xen populates the FDT "uefi" node
218c2ecf20Sopenharmony_ciunder /hypervisor with following parameters:
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci________________________________________________________________________________
248c2ecf20Sopenharmony_ciName                      | Size   | Description
258c2ecf20Sopenharmony_ci================================================================================
268c2ecf20Sopenharmony_cixen,uefi-system-table     | 64-bit | Guest physical address of the UEFI System
278c2ecf20Sopenharmony_ci			  |	   | Table.
288c2ecf20Sopenharmony_ci--------------------------------------------------------------------------------
298c2ecf20Sopenharmony_cixen,uefi-mmap-start       | 64-bit | Guest physical address of the UEFI memory
308c2ecf20Sopenharmony_ci			  |	   | map.
318c2ecf20Sopenharmony_ci--------------------------------------------------------------------------------
328c2ecf20Sopenharmony_cixen,uefi-mmap-size        | 32-bit | Size in bytes of the UEFI memory map
338c2ecf20Sopenharmony_ci                          |        | pointed to in previous entry.
348c2ecf20Sopenharmony_ci--------------------------------------------------------------------------------
358c2ecf20Sopenharmony_cixen,uefi-mmap-desc-size   | 32-bit | Size in bytes of each entry in the UEFI
368c2ecf20Sopenharmony_ci                          |        | memory map.
378c2ecf20Sopenharmony_ci--------------------------------------------------------------------------------
388c2ecf20Sopenharmony_cixen,uefi-mmap-desc-ver    | 32-bit | Version of the mmap descriptor format.
398c2ecf20Sopenharmony_ci--------------------------------------------------------------------------------
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciExample (assuming #address-cells = <2> and #size-cells = <2>):
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_cihypervisor {
448c2ecf20Sopenharmony_ci	compatible = "xen,xen-4.3", "xen,xen";
458c2ecf20Sopenharmony_ci	reg = <0 0xb0000000 0 0x20000>;
468c2ecf20Sopenharmony_ci	interrupts = <1 15 0xf08>;
478c2ecf20Sopenharmony_ci	uefi {
488c2ecf20Sopenharmony_ci		xen,uefi-system-table = <0xXXXXXXXX>;
498c2ecf20Sopenharmony_ci		xen,uefi-mmap-start = <0xXXXXXXXX>;
508c2ecf20Sopenharmony_ci		xen,uefi-mmap-size = <0xXXXXXXXX>;
518c2ecf20Sopenharmony_ci		xen,uefi-mmap-desc-size = <0xXXXXXXXX>;
528c2ecf20Sopenharmony_ci		xen,uefi-mmap-desc-ver = <0xXXXXXXXX>;
538c2ecf20Sopenharmony_ci        };
548c2ecf20Sopenharmony_ci};
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciThe format and meaning of the "xen,uefi-*" parameters are similar to those in
578c2ecf20Sopenharmony_ciDocumentation/arm/uefi.rst, which are provided by the regular UEFI stub. However
588c2ecf20Sopenharmony_cithey differ because they are provided by the Xen hypervisor, together with a set
598c2ecf20Sopenharmony_ciof UEFI runtime services implemented via hypercalls, see
608c2ecf20Sopenharmony_cihttp://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html.
61