bindings: Adding bindings to support vm on Sun
Adding bindings to support vm on Sun. This is snapshot of bindings from 'commit 999a92cd8b38 ("Merge "ARM: dts: qcom: Add platform support for VMs on Cliffs"")' from device tree project msm-6.1 branch. Change-Id: I47eda741b3451d38d215f7d95505a2bb4dd86565 Signed-off-by: Meena Pasumarthi <quic_pasumart@quicinc.com> Signed-off-by: Sahitya Tummala <quic_stummala@quicinc.com>
This commit is contained in:
committed by
Sahitya Tummala
parent
8e96b50796
commit
784b6afca3
21
bindings/arm/msm/gh_vcpu_sched.yaml
Normal file
21
bindings/arm/msm/gh_vcpu_sched.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/arm/msm/gh_vcpu_sched.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. VCPU Scheduling for Secondary VMs
|
||||
|
||||
maintainers:
|
||||
- Murali Nalajala <quic_mnalajal@quicinc.com>
|
||||
- Satya Durga Srinivasu Prabhala <quic_satyap@quicinc.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,gh_vcpu_sched
|
||||
|
||||
examples:
|
||||
- |
|
||||
gh_vcpu_sched {
|
||||
compatible = "qcom,gh_vcpu_sched";
|
||||
};
|
60
bindings/arm/msm/qcom,gh-secure-vm-loader.yaml
Normal file
60
bindings/arm/msm/qcom,gh-secure-vm-loader.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/arm/msm/qcom,gh-secure-vm-loader.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Gunyah Secure Virtual Machine Loader
|
||||
|
||||
maintainers:
|
||||
- Prakruthi Deepak Heragu <quic_pheragu@quicinc.com>
|
||||
- Sreenad Menon <quic_sreemeno@quicinc.com>
|
||||
|
||||
description: |+
|
||||
Secure VM loader driver is used for loading the Secure Virtual Machine
|
||||
images into memory and conveying the memory details to Resource Manager.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,gh-secure-vm-loader
|
||||
|
||||
qcom,vmid:
|
||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||
description: Virtual Machine ID of the current virtual machine.
|
||||
|
||||
qcom,pas-id:
|
||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||
description: Peripheral authentication ID of the subsystem.
|
||||
|
||||
qcom,firmware-name:
|
||||
$ref: '/schemas/types.yaml#/definitions/string'
|
||||
description: Virtual machine name.
|
||||
|
||||
memory-region:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle'
|
||||
description: Virtual machine memory region.
|
||||
|
||||
virtio-backends:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle'
|
||||
description: Virtio backend devices of VM.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- qcom,pas-id
|
||||
- qcom,vmid
|
||||
- qcom,firmware-name
|
||||
- memory-region
|
||||
- virtio-backends
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
gh-secure-vm-loader@0 {
|
||||
compatible = "qcom,gh-secure-vm-loader";
|
||||
qcom,pas-id = <28>;
|
||||
qcom,vmid = <45>;
|
||||
qcom,firmware-name = "trustedvm";
|
||||
memory-region = <&trust_ui_vm_mem>;
|
||||
virtio-backends = <&trust_ui_vm_virt_be0>;
|
||||
};
|
178
bindings/gunyah/qcom,hypervisor.yml
Normal file
178
bindings/gunyah/qcom,hypervisor.yml
Normal file
@@ -0,0 +1,178 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/gunyah/qcom,hypervisor.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Hypervisor node to define virtual devices and other services.
|
||||
|
||||
maintainers:
|
||||
- Murali Nalajala <quic_mnalajal@quicinc.com>
|
||||
|
||||
description: |+
|
||||
Top-level node named /hypervisor that describes virtual devices and other
|
||||
services.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
items:
|
||||
- const: qcom,gunyah-hypervisor-1.0
|
||||
- const: qcom,gunyah-hypervisor
|
||||
|
||||
properties:
|
||||
"#address-cells":
|
||||
const: 2
|
||||
"#size-cells":
|
||||
description: must be 0, because capability IDs are not memory address
|
||||
ranges and do not have a size.
|
||||
const: 0
|
||||
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
|
||||
description: |+
|
||||
The VM Identification is a virtual node that conveys to the VM information
|
||||
about itself in the context of the hypervisor-based system and may be
|
||||
present as a child of the /hypervisor node
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
description: |+
|
||||
Must contain the VM-ID compatible string, which is provisionally
|
||||
specified as "qcom,gunyah-vm-id". This should be preceded by
|
||||
a string that specifies the VM ID API version, which is currently
|
||||
1.0, thus "qcom,gunyah-vm-id-1.0".
|
||||
items:
|
||||
- const: qcom,gunyah-vm-id-1.0
|
||||
- const: qcom,gunyah-vm-id
|
||||
|
||||
properties:
|
||||
qcom,vendor:
|
||||
description: must contain the VM vendor string, for example: "Qualcomm Technologies, Inc.".
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
|
||||
qcom,vmid:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: must contain the hypervisor VMID of the VM, as
|
||||
a 32-bit value
|
||||
|
||||
qcom,owner-vmid:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Contains the hypervisor VMID of the VM’s owner. The owner
|
||||
is the VM that allocated and created the VM. VMs directly
|
||||
managed by the resource manager, such as the HLOS do not
|
||||
have an owner.
|
||||
|
||||
qcom,image-name:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: contains the VM image name string.
|
||||
|
||||
qcom,swid:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: must contain the Qualcomm Technologies, Inc. PIL software ID value.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- qcom,vmid
|
||||
- qcom,owner-vmid
|
||||
|
||||
|
||||
description: |+
|
||||
Resource Manager node which is required to communicate to Resource
|
||||
Manager VM using RM Message Queues.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
description:
|
||||
The resource manager RPC communicate link is required to be in the
|
||||
device-tree of a VM at boot, without it, a VM may be unable to
|
||||
communicate with the Resource Manager. Resource Manager VM can
|
||||
support implementation of various versions i.e 1.0 or 2.0
|
||||
|
||||
items:
|
||||
- const: qcom,resource-manager-1-0
|
||||
- const: qcom,resource-manager
|
||||
- const: qcom,gunyah-message-queue
|
||||
- const: qcom,haven-capability
|
||||
|
||||
interrupts:
|
||||
maxItems: 2
|
||||
|
||||
reg:
|
||||
maxItems: 2
|
||||
|
||||
qcom,is-full-duplex:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: This node is a pair of message queues i.e. Tx and Rx
|
||||
|
||||
qcom,tx-message-size:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: maximum message size in bytes, >= 240 bytes for RM IPC
|
||||
|
||||
qcom,tx-queue-depth:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: depth(size) of transmit queue in hypervisor
|
||||
|
||||
qcom,rx-message-size:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: maximum message size in bytes, >= 240 bytes for RM IPC
|
||||
|
||||
qcom,rx-queue-depth:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: depth(size) of receive queue in hypervisor
|
||||
|
||||
qcom,console-dev:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: if set, the resource-manger will accept console logs
|
||||
from the VM
|
||||
|
||||
qcom,free-irq-start:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: first VIRQ number which is free for virtual interrupt
|
||||
use. Here SPI 0 = VIRQ 32.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- reg
|
||||
- qcom,is-full-duplex
|
||||
|
||||
examples:
|
||||
- |
|
||||
hypervisor {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
compatible = "qcom,gunyah-hypervisor-1.0", "qcom,gunyah-hypervisor",
|
||||
"simple-bus";
|
||||
name = "hypervisor";
|
||||
|
||||
qcom,gunyah-vm {
|
||||
compatible = "qcom,gunyah-vm-id-1.0", "qcom,gunyah-vm-id";
|
||||
qcom,vendor = "Qualcomm Technologies, Inc.";
|
||||
qcom,vmid = <45>;
|
||||
qcom,owner-vmid = <3>;
|
||||
};
|
||||
|
||||
qcom,resource-manager-rpc@0000000000000001 {
|
||||
compatible = "qcom,resource-manager-1-0", "qcom,resource-manager",
|
||||
"qcom,gunyah-message-queue", "qcom,haven-capability";
|
||||
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>, /* TX full IRQ */
|
||||
<GIC_SPI 4 IRQ_TYPE_EDGE_RISING>; /* RX empty IRQ */
|
||||
reg = <0x00000000 0x00000000>, <0x00000000 0x00000001>;
|
||||
/* TX, RX cap ids */
|
||||
qcom,is-full-duplex;
|
||||
qcom,free-irq-start = <0>;
|
||||
qcom,tx-queue-depth = <8>;
|
||||
qcom,tx-message-size = <0xf0>;
|
||||
qcom,rx-queue-depth = <8>;
|
||||
qcom,rx-message-size = <0xf0>;
|
||||
};
|
||||
};
|
||||
|
53
bindings/gunyah/virtio_backend.yaml
Normal file
53
bindings/gunyah/virtio_backend.yaml
Normal file
@@ -0,0 +1,53 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/gunyah/virtio_backend.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Virtio backend device for Gunyah hypervisor
|
||||
|
||||
maintainers:
|
||||
- Srivatsa Vaddagiri <quic_svaddagi@quicinc.com>
|
||||
- Sreenad Menon <quic_sreemeno@quicinc.com>
|
||||
|
||||
description: |+
|
||||
Configuration properties for Virtio backend device. This device is
|
||||
specific to virtio support found in Gunyah hypervisor. The
|
||||
device helps a virtio backend driver in one Virtual Machine
|
||||
establish connection with its frontend counterpart in another Virtual
|
||||
Machine, with both VMs running on Gunyah hypervisor.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: qcom,virtio_backend
|
||||
|
||||
qcom,vm:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Handle to node that describes common properties of a VM to which this
|
||||
device belongs.
|
||||
|
||||
qcom,label:
|
||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||
description:
|
||||
Unique label associated with the device. This label is used to identify
|
||||
the right device which is the target of ioctl() calls.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- qcom,vm
|
||||
- qcom,label
|
||||
|
||||
example:
|
||||
- |
|
||||
trustedvm: trustedvm@0 {
|
||||
reg = <0x0 0xdff00000 0x0 100000>;
|
||||
vm_name = "trustedvm";
|
||||
};
|
||||
|
||||
virtio_backend@0 {
|
||||
compatible = "qcom,virtio_backend";
|
||||
qcom,vm = <&trustedvm>;
|
||||
qcom,label = <0x10200>;
|
||||
};
|
90
bindings/gunyah/vm.yaml
Normal file
90
bindings/gunyah/vm.yaml
Normal file
@@ -0,0 +1,90 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/gunyah/vm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Virtual Machine (VM) Configuration
|
||||
|
||||
maintainers:
|
||||
- Venkata Narendra Kumar Gutta <quic_vgutta@quicinc.com>
|
||||
- Murali Nalajala <quic_mnalajal@quicinc.com>
|
||||
|
||||
description: |+
|
||||
Configuration properties for Virtual Machines. This configuration
|
||||
is used by virtual machine manager and know about various
|
||||
properties of VM before it launch the virtual machine
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: qcom,vm-1.0
|
||||
|
||||
vm-type:
|
||||
description: type of virtual machine e.g aarch64, x86 etc
|
||||
oneOf:
|
||||
- const: aarch64-guest
|
||||
|
||||
boot-config:
|
||||
oneOf:
|
||||
- const: fdt,unified
|
||||
|
||||
os-type:
|
||||
description: Type of the operating system being used in virtual machine
|
||||
oneOf:
|
||||
- const: linux
|
||||
|
||||
kernel-entry-segment:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
|
||||
kernel-entry-offset:
|
||||
$ref: '/schemas/types.yaml#/definitions/uint64'
|
||||
|
||||
vendor:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
|
||||
image-name:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
|
||||
qcom,pasid:
|
||||
$ref: '/schemas/types.yaml#/definitions/uint64'
|
||||
|
||||
memory:
|
||||
properties:
|
||||
"#address-cells":
|
||||
const: 2
|
||||
"#size-cells":
|
||||
const: 2
|
||||
base-address:
|
||||
description: Base address of the memory for virtual machine
|
||||
maxItems: 2
|
||||
size-min:
|
||||
description: Size of the memory that is being used by the virtual machine
|
||||
maxItems: 2
|
||||
|
||||
segments:
|
||||
properties:
|
||||
kernel:
|
||||
maxItems: 4
|
||||
description: Load location offset of the kernel
|
||||
dt:
|
||||
maxItems: 4
|
||||
description: Load location offset of devicetree
|
||||
|
||||
vcpus:
|
||||
properties:
|
||||
config
|
||||
affinity
|
||||
affinity-map
|
||||
|
||||
interrupts:
|
||||
properties:
|
||||
config
|
||||
|
||||
vdevices:
|
||||
properties:
|
||||
peer-default
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- image_to_be_loaded
|
31
bindings/pinctrl/qcom,sun-vm-pinctrl.yaml
Normal file
31
bindings/pinctrl/qcom,sun-vm-pinctrl.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,sun-vm-pinctrl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. SUN VM TLMM block
|
||||
|
||||
maintainers:
|
||||
- Murali Nalajala <quic_mnalajal@quicinc.com>
|
||||
- Satya Durga Srinivasu Prabhala <quic_satyap@quicinc.com>
|
||||
|
||||
description: |
|
||||
This binding describes the Top Level Mode Multiplexer block for VM.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,sun-vm-pinctrl
|
||||
|
||||
examples:
|
||||
- |
|
||||
tlmm: pinctrl@03000000 {
|
||||
compatible = "qcom,pineapple-vm-pinctrl";
|
||||
reg = <0x03000000 0xdc2000>;
|
||||
interrupts-extended = <0 208 0>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpios = /bits/ 16 <0 1>;
|
||||
};
|
36
bindings/pinctrl/qcom,tlmm-vm-irq.yaml
Normal file
36
bindings/pinctrl/qcom,tlmm-vm-irq.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,tlmm-vm-irq.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. TLMM VM Irqchip driver binding
|
||||
|
||||
maintainers:
|
||||
|
||||
description: |+
|
||||
The driver acts as a parent interrupt controller for tlmm driver for VMs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,tlmm-vm-irq
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: Base address of TLMM register space
|
||||
- description: Size of TLMM register space
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
|
||||
example:
|
||||
- |
|
||||
vm-tlmm-irq@0 {
|
||||
compatible = "qcom,tlmm-vm-irq";
|
||||
reg = <0x0 0x0>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
...
|
31
bindings/pinctrl/qcom,tlmm-vm-mem-access.yaml
Normal file
31
bindings/pinctrl/qcom,tlmm-vm-mem-access.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
--
|
||||
$id: http://devicetree.org/schemas/pinctrl/qcom,tlmm-vm-mem-access.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. TLMM VM memory access driver binding
|
||||
|
||||
maintainers:
|
||||
|
||||
description: |+
|
||||
The driver facilitates initial memory access to TLMM VM driver.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,tlmm-vm-mem-access
|
||||
|
||||
qcom,master:
|
||||
description: Specify if this device is on the primary virtual machine.
|
||||
|
||||
tlmm-vm-gpio-list:
|
||||
description: List of shared gpios.
|
||||
|
||||
example:
|
||||
- |
|
||||
tlmm-vm-mem-access {
|
||||
compatible = "qcom,tlmm-vm-mem-access";
|
||||
qcom,master;
|
||||
tlmm-vm-gpio-list = <&tlmm 0 0 &tlmm 1 0>;
|
||||
};
|
||||
...
|
26
bindings/soc/qcom/qcom,gh-dbl.yaml
Normal file
26
bindings/soc/qcom/qcom,gh-dbl.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/soc/qcom/qcom,gh-dbl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: QCT Gunyah Hypervisor Doorbell Test Driver
|
||||
|
||||
maintainers:
|
||||
- Murali Nalajala <quic_mnalajal@quicinc.com>
|
||||
- Satya Durga Srinivasu Prabhala <quic_satyap@quicinc.com>
|
||||
|
||||
description: |
|
||||
The Gunyah Hypervisor Test Driver is used to validate gunyah hypervisor
|
||||
functionality. It includes test node for gunyah doorbell for vms.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,gh-dbl
|
||||
|
||||
examples:
|
||||
- |
|
||||
qcom,test-dbl {
|
||||
compatible = "qcom,gh-dbl";
|
||||
qcom,label = <0x4>;
|
||||
};
|
26
bindings/soc/qcom/qcom,logbuf_vendor_hooks.yaml
Normal file
26
bindings/soc/qcom/qcom,logbuf_vendor_hooks.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/soc/qcom/qcom,logbuf_vendor_hooks.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Qualcomm Technologies, Inc. Logbuf Vendor Hooks Binding
|
||||
|
||||
description: |
|
||||
Logbuf Vendor Hook driver is used to register logbuf specific vendor hooks
|
||||
with core kernel to copy initial kernel log to a separate buffer even though
|
||||
kernel log gets overflowed.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: qcom,logbuf-vendor-hooks
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
examples:
|
||||
- |
|
||||
logbuf: qcom,logbuf-vendor-hooks {
|
||||
compatible = "qcom,logbuf-vendor-hooks";
|
||||
};
|
Reference in New Issue
Block a user