| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/arm/xen.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Xen hypervisor | |
| maintainers: | |
| - Stefano Stabellini <sstabellini@kernel.org> | |
| description: | |
| Xen ARM virtual platforms shall have a top-level "hypervisor" node with | |
| the properties defined below. | |
| properties: | |
| $nodename: | |
| pattern: '^hypervisor(@[0-9a-f]+)?$' | |
| compatible: | |
| description: | |
| Specifies the Xen hypervisor. The version of the Xen ABI is encoded | |
| in the first item as "xen,xen-<version>", followed by the generic | |
| "xen,xen" string. | |
| items: | |
| - pattern: '^xen,xen-[0-9]+\.[0-9]+$' | |
| - const: xen,xen | |
| reg: | |
| description: | | |
| Base physical address and size of the regions in memory where special | |
| resources should be mapped to, using a HYPERVISOR_memory_op hypercall. | |
| Region 0 is reserved for mapping the grant table and must always be | |
| present. The memory region must be large enough to map the whole grant | |
| table (it is larger or equal to gnttab_max_grant_frames()). | |
| Regions 1...N are extended regions (unused address space) for mapping | |
| foreign GFNs and grants. They might be absent if there is nothing to | |
| expose. | |
| minItems: 1 | |
| interrupts: | |
| description: | |
| The interrupt used by Xen to inject event notifications. | |
| A GIC node is also required. | |
| maxItems: 1 | |
| uefi: | |
| type: object | |
| description: | |
| Node populated by Xen to support UEFI on Xen ARM virtual platforms. | |
| The format and meaning of the "xen,uefi-*" parameters are similar to | |
| those in Documentation/arch/arm/uefi.rst, but are provided by the Xen | |
| hypervisor together with a set of UEFI runtime services implemented via | |
| hypercalls. | |
| properties: | |
| xen,uefi-system-table: | |
| description: Guest physical address of the UEFI System Table. | |
| $ref: /schemas/types.yaml#/definitions/uint64 | |
| xen,uefi-mmap-start: | |
| description: Guest physical address of the UEFI memory map. | |
| $ref: /schemas/types.yaml#/definitions/uint64 | |
| xen,uefi-mmap-size: | |
| description: Size in bytes of the UEFI memory map pointed to by xen,uefi-mmap-start. | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| xen,uefi-mmap-desc-size: | |
| description: Size in bytes of each entry in the UEFI memory map. | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| xen,uefi-mmap-desc-ver: | |
| description: Version of the mmap descriptor format. | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| required: | |
| - xen,uefi-system-table | |
| - xen,uefi-mmap-start | |
| - xen,uefi-mmap-size | |
| - xen,uefi-mmap-desc-size | |
| - xen,uefi-mmap-desc-ver | |
| additionalProperties: false | |
| required: | |
| - compatible | |
| - reg | |
| - interrupts | |
| additionalProperties: false | |
| examples: | |
| - | | |
| hypervisor@b0000000 { | |
| compatible = "xen,xen-4.3", "xen,xen"; | |
| reg = <0xb0000000 0x20000>; | |
| interrupts = <1 15 0xf08>; | |
| uefi { | |
| xen,uefi-system-table = /bits/ 64 <0x1301415>; | |
| xen,uefi-mmap-start = /bits/ 64 <0x7591400>; | |
| xen,uefi-mmap-size = <0x1800>; | |
| xen,uefi-mmap-desc-size = <0x30>; | |
| xen,uefi-mmap-desc-ver = <1>; | |
| }; | |
| }; | |
| ... |