# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/reserved-memory/shared-dma-pool.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: /reserved-memory DMA pool

maintainers:
  - devicetree-spec@vger.kernel.org

allOf:
  - $ref: reserved-memory.yaml

properties:
  compatible:
    oneOf:
      - const: shared-dma-pool
        description: >
          This indicates a region of memory meant to be used as a shared
          pool of DMA buffers for a set of devices. It can be used by an
          operating system to instantiate the necessary pool management
          subsystem if necessary.

      - const: restricted-dma-pool
        description: >
          This indicates a region of memory meant to be used as a pool
          of restricted DMA buffers for a set of devices. The memory
          region would be the only region accessible to those devices.
          When using this, the no-map and reusable properties must not
          be set, so the operating system can create a virtual mapping
          that will be used for synchronization. The main purpose for
          restricted DMA is to mitigate the lack of DMA access control
          on systems without an IOMMU, which could result in the DMA
          accessing the system memory at unexpected times and/or
          unexpected addresses, possibly leading to data leakage or
          corruption. The feature on its own provides a basic level of
          protection against the DMA overwriting buffer contents at
          unexpected times. However, to protect against general data
          leakage and system memory corruption, the system needs to
          provide way to lock down the memory access, e.g., MPU. Note
          that since coherent allocation needs remapping, one must set
          up another device coherent pool by shared-dma-pool and use
          dma_alloc_from_dev_coherent instead for atomic coherent
          allocation.

  linux,cma-default:
    type: boolean
    description: >
      If this property is present, then Linux will use the region for
      the default pool of the contiguous memory allocator.

  linux,dma-default:
    type: boolean
    description: >
      If this property is present, then Linux will use the region for
      the default pool of the consistent DMA allocator.

if:
  properties:
    compatible:
      contains:
        const: restricted-dma-pool
then:
  properties:
    no-map: false
    reusable: false

unevaluatedProperties: false

examples:
  - |
      reserved-memory {
          #address-cells = <1>;
          #size-cells = <1>;
          ranges;

          /* global autoconfigured region for contiguous allocations */
          linux,cma {
              compatible = "shared-dma-pool";
              reusable;
              size = <0x4000000>;
              alignment = <0x2000>;
              linux,cma-default;
          };

          display_reserved: framebuffer@78000000 {
              reg = <0x78000000 0x800000>;
          };

          restricted_dma_reserved: restricted-dma-pool@50000000 {
              compatible = "restricted-dma-pool";
              reg = <0x50000000 0x4000000>;
          };
      };

...
