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