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