1*4882a593Smuzhiyun* Xen hypervisor device tree bindings 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunXen ARM virtual platforms shall have a top-level "hypervisor" node with 4*4882a593Smuzhiyunthe following properties: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun- compatible: 7*4882a593Smuzhiyun compatible = "xen,xen-<version>", "xen,xen"; 8*4882a593Smuzhiyun where <version> is the version of the Xen ABI of the platform. 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun- reg: specifies the base physical address and size of a region in 11*4882a593Smuzhiyun memory where the grant table should be mapped to, using an 12*4882a593Smuzhiyun HYPERVISOR_memory_op hypercall. The memory region is large enough to map 13*4882a593Smuzhiyun the whole grant table (it is larger or equal to gnttab_max_grant_frames()). 14*4882a593Smuzhiyun This property is unnecessary when booting Dom0 using ACPI. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun- interrupts: the interrupt used by Xen to inject event notifications. 17*4882a593Smuzhiyun A GIC node is also required. 18*4882a593Smuzhiyun This property is unnecessary when booting Dom0 using ACPI. 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunTo support UEFI on Xen ARM virtual platforms, Xen populates the FDT "uefi" node 21*4882a593Smuzhiyununder /hypervisor with following parameters: 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun________________________________________________________________________________ 24*4882a593SmuzhiyunName | Size | Description 25*4882a593Smuzhiyun================================================================================ 26*4882a593Smuzhiyunxen,uefi-system-table | 64-bit | Guest physical address of the UEFI System 27*4882a593Smuzhiyun | | Table. 28*4882a593Smuzhiyun-------------------------------------------------------------------------------- 29*4882a593Smuzhiyunxen,uefi-mmap-start | 64-bit | Guest physical address of the UEFI memory 30*4882a593Smuzhiyun | | map. 31*4882a593Smuzhiyun-------------------------------------------------------------------------------- 32*4882a593Smuzhiyunxen,uefi-mmap-size | 32-bit | Size in bytes of the UEFI memory map 33*4882a593Smuzhiyun | | pointed to in previous entry. 34*4882a593Smuzhiyun-------------------------------------------------------------------------------- 35*4882a593Smuzhiyunxen,uefi-mmap-desc-size | 32-bit | Size in bytes of each entry in the UEFI 36*4882a593Smuzhiyun | | memory map. 37*4882a593Smuzhiyun-------------------------------------------------------------------------------- 38*4882a593Smuzhiyunxen,uefi-mmap-desc-ver | 32-bit | Version of the mmap descriptor format. 39*4882a593Smuzhiyun-------------------------------------------------------------------------------- 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunExample (assuming #address-cells = <2> and #size-cells = <2>): 42*4882a593Smuzhiyun 43*4882a593Smuzhiyunhypervisor { 44*4882a593Smuzhiyun compatible = "xen,xen-4.3", "xen,xen"; 45*4882a593Smuzhiyun reg = <0 0xb0000000 0 0x20000>; 46*4882a593Smuzhiyun interrupts = <1 15 0xf08>; 47*4882a593Smuzhiyun uefi { 48*4882a593Smuzhiyun xen,uefi-system-table = <0xXXXXXXXX>; 49*4882a593Smuzhiyun xen,uefi-mmap-start = <0xXXXXXXXX>; 50*4882a593Smuzhiyun xen,uefi-mmap-size = <0xXXXXXXXX>; 51*4882a593Smuzhiyun xen,uefi-mmap-desc-size = <0xXXXXXXXX>; 52*4882a593Smuzhiyun xen,uefi-mmap-desc-ver = <0xXXXXXXXX>; 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun}; 55*4882a593Smuzhiyun 56*4882a593SmuzhiyunThe format and meaning of the "xen,uefi-*" parameters are similar to those in 57*4882a593SmuzhiyunDocumentation/arm/uefi.rst, which are provided by the regular UEFI stub. However 58*4882a593Smuzhiyunthey differ because they are provided by the Xen hypervisor, together with a set 59*4882a593Smuzhiyunof UEFI runtime services implemented via hypercalls, see 60*4882a593Smuzhiyunhttp://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html. 61