# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/virtio/qcom,virtio-mem.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Qualcomm Technologies, Inc. Virtio-Mem

maintainers:
  - Patrick Daly <quic_pdaly@quicinc.com>

description: |
  QTI virtio mem driver supports Guest initiated memory hotplug operations
  which transfer memory from Host to Guest.

properties:
  compatible:
    items:
      - const: qcom,virtio-mem

  qcom,block-size:
    $ref: '/schemas/types.yaml#/definitions/uint32'
    description:
      Minimum transfer size in bytes. Should be multiple of PAGE_SIZE.

  qcom,max-size:
    $ref: '/schemas/types.yaml#/definitions/uint64'
    description: |
      Maximum amount of hotpluggable memory this device supports.

  qcom,ipa-range:
    $ref: '/schemas/types.yaml#/definitions/uint64-array'
    description: |
      An inclusive range describing what address range the hypervisor
      is allowed to choose when adding hotpluggable memory for this
      device.

  qcom,initial-movable-zone-size:
    $ref: '/schemas/types.yaml#/definitions/uint32'
    description: |
      Initial size of movable zone.

  qcom,memory-encryption:
    type: boolean
    description: |
      Indicates that virtio-mem should only accept memory which has at least
      the same level of encryption as the base kernel.

required:
  - compatible
  - qcom,max-size
  - qcom,ipa-range
  - qcom,block-size

additionalProperties: false

examples:
  - |+
    virtio_mem_device@0x60000000 {
      compatible = "qcom,virtio-mem";
      qcom,block-size = <0x400000>;
      qcom,max-size = <0x0 0x10000000>;
      qcom,ipa-range = <0x0 0x0 0xf 0xffffffff>;
    };
