xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/arm/xen.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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