1c66ec88fSEmmanuel Vadot* Xen hypervisor device tree bindings 2c66ec88fSEmmanuel Vadot 3c66ec88fSEmmanuel VadotXen ARM virtual platforms shall have a top-level "hypervisor" node with 4c66ec88fSEmmanuel Vadotthe following properties: 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot- compatible: 7c66ec88fSEmmanuel Vadot compatible = "xen,xen-<version>", "xen,xen"; 8c66ec88fSEmmanuel Vadot where <version> is the version of the Xen ABI of the platform. 9c66ec88fSEmmanuel Vadot 10e67e8565SEmmanuel Vadot- reg: specifies the base physical address and size of the regions in memory 11e67e8565SEmmanuel Vadot where the special resources should be mapped to, using an HYPERVISOR_memory_op 12e67e8565SEmmanuel Vadot hypercall. 13e67e8565SEmmanuel Vadot Region 0 is reserved for mapping grant table, it must be always present. 14e67e8565SEmmanuel Vadot The memory region is large enough to map the whole grant table (it is larger 15e67e8565SEmmanuel Vadot or equal to gnttab_max_grant_frames()). 16e67e8565SEmmanuel Vadot Regions 1...N are extended regions (unused address space) for mapping foreign 17e67e8565SEmmanuel Vadot GFNs and grants, they might be absent if there is nothing to expose. 18c66ec88fSEmmanuel Vadot 19c66ec88fSEmmanuel Vadot- interrupts: the interrupt used by Xen to inject event notifications. 20c66ec88fSEmmanuel Vadot A GIC node is also required. 21c66ec88fSEmmanuel Vadot 22c66ec88fSEmmanuel VadotTo support UEFI on Xen ARM virtual platforms, Xen populates the FDT "uefi" node 23c66ec88fSEmmanuel Vadotunder /hypervisor with following parameters: 24c66ec88fSEmmanuel Vadot 25c66ec88fSEmmanuel Vadot________________________________________________________________________________ 26c66ec88fSEmmanuel VadotName | Size | Description 27c66ec88fSEmmanuel Vadot================================================================================ 28c66ec88fSEmmanuel Vadotxen,uefi-system-table | 64-bit | Guest physical address of the UEFI System 29c66ec88fSEmmanuel Vadot | | Table. 30c66ec88fSEmmanuel Vadot-------------------------------------------------------------------------------- 31c66ec88fSEmmanuel Vadotxen,uefi-mmap-start | 64-bit | Guest physical address of the UEFI memory 32c66ec88fSEmmanuel Vadot | | map. 33c66ec88fSEmmanuel Vadot-------------------------------------------------------------------------------- 34c66ec88fSEmmanuel Vadotxen,uefi-mmap-size | 32-bit | Size in bytes of the UEFI memory map 35c66ec88fSEmmanuel Vadot | | pointed to in previous entry. 36c66ec88fSEmmanuel Vadot-------------------------------------------------------------------------------- 37c66ec88fSEmmanuel Vadotxen,uefi-mmap-desc-size | 32-bit | Size in bytes of each entry in the UEFI 38c66ec88fSEmmanuel Vadot | | memory map. 39c66ec88fSEmmanuel Vadot-------------------------------------------------------------------------------- 40c66ec88fSEmmanuel Vadotxen,uefi-mmap-desc-ver | 32-bit | Version of the mmap descriptor format. 41c66ec88fSEmmanuel Vadot-------------------------------------------------------------------------------- 42c66ec88fSEmmanuel Vadot 43c66ec88fSEmmanuel VadotExample (assuming #address-cells = <2> and #size-cells = <2>): 44c66ec88fSEmmanuel Vadot 45c66ec88fSEmmanuel Vadothypervisor { 46c66ec88fSEmmanuel Vadot compatible = "xen,xen-4.3", "xen,xen"; 47c66ec88fSEmmanuel Vadot reg = <0 0xb0000000 0 0x20000>; 48c66ec88fSEmmanuel Vadot interrupts = <1 15 0xf08>; 49c66ec88fSEmmanuel Vadot uefi { 50c66ec88fSEmmanuel Vadot xen,uefi-system-table = <0xXXXXXXXX>; 51c66ec88fSEmmanuel Vadot xen,uefi-mmap-start = <0xXXXXXXXX>; 52c66ec88fSEmmanuel Vadot xen,uefi-mmap-size = <0xXXXXXXXX>; 53c66ec88fSEmmanuel Vadot xen,uefi-mmap-desc-size = <0xXXXXXXXX>; 54c66ec88fSEmmanuel Vadot xen,uefi-mmap-desc-ver = <0xXXXXXXXX>; 55c66ec88fSEmmanuel Vadot }; 56c66ec88fSEmmanuel Vadot}; 57c66ec88fSEmmanuel Vadot 58c66ec88fSEmmanuel VadotThe format and meaning of the "xen,uefi-*" parameters are similar to those in 59*f126890aSEmmanuel VadotDocumentation/arch/arm/uefi.rst, which are provided by the regular UEFI stub. However 60c66ec88fSEmmanuel Vadotthey differ because they are provided by the Xen hypervisor, together with a set 61c66ec88fSEmmanuel Vadotof UEFI runtime services implemented via hypercalls, see 62c66ec88fSEmmanuel Vadothttp://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html. 63