2023-10-13 20:45:58

by Rob Herring (Arm)

[permalink] [raw]
Subject: [PATCH] dt-bindings: Drop kernel copy of common reserved-memory bindings

The common reserved-memory bindings have recently been copied from the
kernel tree into dtschema. The preference is to host common, stable
bindings in dtschema. As reserved-memory is documented in the DT Spec,
it meets the criteria.

The v2023.09 version of dtschema is what contains the reserved-memory
schemas we depend on, so bump the minimum version to that. Otherwise,
references to these schemas will generate errors.

Signed-off-by: Rob Herring <[email protected]>
---
Documentation/devicetree/bindings/Makefile | 2 +-
.../remoteproc/renesas,rcar-rproc.yaml | 2 +-
.../bindings/reserved-memory/framebuffer.yaml | 52 -----
.../reserved-memory/memory-region.yaml | 40 ----
.../reserved-memory/reserved-memory.txt | 2 +-
.../reserved-memory/reserved-memory.yaml | 181 ------------------
.../reserved-memory/shared-dma-pool.yaml | 97 ----------
.../bindings/sound/mediatek,mt8188-afe.yaml | 2 +-
8 files changed, 4 insertions(+), 374 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
delete mode 100644 Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
delete mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
delete mode 100644 Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml

diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
index 8b395893bd85..3e886194b043 100644
--- a/Documentation/devicetree/bindings/Makefile
+++ b/Documentation/devicetree/bindings/Makefile
@@ -6,7 +6,7 @@ DT_MK_SCHEMA ?= dt-mk-schema
DT_SCHEMA_LINT = $(shell which yamllint || \
echo "warning: python package 'yamllint' not installed, skipping" >&2)

-DT_SCHEMA_MIN_VERSION = 2022.3
+DT_SCHEMA_MIN_VERSION = 2023.9

PHONY += check_dtschema_version
check_dtschema_version:
diff --git a/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml
index 4bea679a0f61..5c280117dc93 100644
--- a/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml
@@ -31,7 +31,7 @@ properties:
remoteproc device. This is variable and describes the memories shared with
the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
vrings, ...).
- (see ../reserved-memory/reserved-memory.yaml)
+ (see reserved-memory/reserved-memory.yaml in dtschema project)

required:
- compatible
diff --git a/Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml b/Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
deleted file mode 100644
index 851ec24d6142..000000000000
--- a/Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/reserved-memory/framebuffer.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: /reserved-memory framebuffer node
-
-maintainers:
- - [email protected]
-
-allOf:
- - $ref: reserved-memory.yaml
-
-properties:
- compatible:
- const: framebuffer
- description: >
- This indicates a region of memory meant to be used as a framebuffer for
- a set of display devices. It can be used by an operating system to keep
- the framebuffer from being overwritten and use it as the backing memory
- for a display device (such as simple-framebuffer).
-
-unevaluatedProperties: false
-
-examples:
- - |
- / {
- compatible = "foo";
- model = "foo";
- #address-cells = <1>;
- #size-cells = <1>;
-
- chosen {
- framebuffer {
- compatible = "simple-framebuffer";
- memory-region = <&fb>;
- };
- };
-
- reserved-memory {
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- fb: framebuffer@80000000 {
- compatible = "framebuffer";
- reg = <0x80000000 0x007e9000>;
- };
- };
- };
-...
diff --git a/Documentation/devicetree/bindings/reserved-memory/memory-region.yaml b/Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
deleted file mode 100644
index 592f180e6b0d..000000000000
--- a/Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/reserved-memory/memory-region.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Reserved Memory Region
-
-maintainers:
- - [email protected]
-
-description: |
- Regions in the /reserved-memory node may be referenced by other device
- nodes by adding a memory-region property to the device node.
-
-select: true
-
-properties:
- memory-region:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- description: >
- Phandle to a /reserved-memory child node assigned to the device.
-
- memory-region-names:
- $ref: /schemas/types.yaml#/definitions/string-array
- description: >
- A list of names, one for each corresponding entry in the
- memory-region property
-
-additionalProperties: true
-
-examples:
- - |
- fb0: video@12300000 {
- /* ... */
- reg = <0x12300000 0x1000>;
- memory-region = <&display_reserved>;
- };
-
-...
diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
index 1810701a8509..8ce72996d500 100644
--- a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
+++ b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
@@ -1 +1 @@
-This file has been moved to reserved-memory.yaml.
+This file has been moved to reserved-memory.yaml in the dtschema repository.
diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
deleted file mode 100644
index c680e397cfd2..000000000000
--- a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
+++ /dev/null
@@ -1,181 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/reserved-memory/reserved-memory.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: /reserved-memory Child Node Common
-
-maintainers:
- - [email protected]
-
-description: >
- Reserved memory is specified as a node under the /reserved-memory node. The
- operating system shall exclude reserved memory from normal usage one can
- create child nodes describing particular reserved (excluded from normal use)
- memory regions. Such memory regions are usually designed for the special
- usage by various device drivers.
-
- Each child of the reserved-memory node specifies one or more regions
- of reserved memory. Each child node may either use a 'reg' property to
- specify a specific range of reserved memory, or a 'size' property with
- optional constraints to request a dynamically allocated block of
- memory.
-
- Following the generic-names recommended practice, node names should
- reflect the purpose of the node (ie. "framebuffer" or "dma-pool").
- Unit address (@<address>) should be appended to the name if the node
- is a static allocation.
-
-properties:
- reg: true
-
- size:
- oneOf:
- - $ref: /schemas/types.yaml#/definitions/uint32
- - $ref: /schemas/types.yaml#/definitions/uint64
- description: >
- Length based on parent's \#size-cells. Size in bytes of memory to
- reserve.
-
- alignment:
- oneOf:
- - $ref: /schemas/types.yaml#/definitions/uint32
- - $ref: /schemas/types.yaml#/definitions/uint64
- description: >
- Length based on parent's \#size-cells. Address boundary for
- alignment of allocation.
-
- alloc-ranges:
- $ref: /schemas/types.yaml#/definitions/uint32-array
- description: >
- Address and Length pairs. Specifies regions of memory that are
- acceptable to allocate from.
-
- iommu-addresses:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- description: >
- A list of phandle and specifier pairs that describe static IO virtual
- address space mappings and carveouts associated with a given reserved
- memory region. The phandle in the first cell refers to the device for
- which the mapping or carveout is to be created.
-
- The specifier consists of an address/size pair and denotes the IO
- virtual address range of the region for the given device. The exact
- format depends on the values of the "#address-cells" and "#size-cells"
- properties of the device referenced via the phandle.
-
- When used in combination with a "reg" property, an IOVA mapping is to
- be established for this memory region. One example where this can be
- useful is to create an identity mapping for physical memory that the
- firmware has configured some hardware to access (such as a bootsplash
- framebuffer).
-
- If no "reg" property is specified, the "iommu-addresses" property
- defines carveout regions in the IOVA space for the given device. This
- can be useful if a certain memory region should not be mapped through
- the IOMMU.
-
- no-map:
- type: boolean
- description: >
- Indicates the operating system must not create a virtual mapping
- of the region as part of its standard mapping of system memory,
- nor permit speculative access to it under any circumstances other
- than under the control of the device driver using the region.
-
- reusable:
- type: boolean
- description: >
- The operating system can use the memory in this region with the
- limitation that the device driver(s) owning the region need to be
- able to reclaim it back. Typically that means that the operating
- system can use that region to store volatile or cached data that
- can be otherwise regenerated or migrated elsewhere.
-
-allOf:
- - if:
- required:
- - no-map
-
- then:
- not:
- required:
- - reusable
-
- - if:
- required:
- - reusable
-
- then:
- not:
- required:
- - no-map
-
-oneOf:
- - oneOf:
- - required:
- - reg
-
- - required:
- - size
-
- - oneOf:
- # IOMMU reservations
- - required:
- - iommu-addresses
-
- # IOMMU mappings
- - required:
- - reg
- - iommu-addresses
-
-additionalProperties: true
-
-examples:
- - |
- / {
- compatible = "foo";
- model = "foo";
-
- #address-cells = <2>;
- #size-cells = <2>;
-
- reserved-memory {
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
-
- adsp_resv: reservation-adsp {
- /*
- * Restrict IOVA mappings for ADSP buffers to the 512 MiB region
- * from 0x40000000 - 0x5fffffff. Anything outside is reserved by
- * the ADSP for I/O memory and private memory allocations.
- */
- iommu-addresses = <&adsp 0x0 0x00000000 0x00 0x40000000>,
- <&adsp 0x0 0x60000000 0xff 0xa0000000>;
- };
-
- fb: framebuffer@90000000 {
- reg = <0x0 0x90000000 0x0 0x00800000>;
- iommu-addresses = <&dc0 0x0 0x90000000 0x0 0x00800000>;
- };
- };
-
- bus@0 {
- #address-cells = <1>;
- #size-cells = <1>;
- ranges = <0x0 0x0 0x0 0x40000000>;
-
- adsp: adsp@2990000 {
- reg = <0x2990000 0x2000>;
- memory-region = <&adsp_resv>;
- };
-
- dc0: display@15200000 {
- reg = <0x15200000 0x10000>;
- memory-region = <&fb>;
- };
- };
- };
-...
diff --git a/Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml b/Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
deleted file mode 100644
index 457de0920cd1..000000000000
--- a/Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-# 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:
- - [email protected]
-
-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>;
- };
- };
-
-...
diff --git a/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml b/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml
index 90520f89208b..77af276ed2a2 100644
--- a/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml
+++ b/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml
@@ -29,7 +29,7 @@ properties:
maxItems: 1
description: |
Shared memory region for AFE memif. A "shared-dma-pool".
- See ../reserved-memory/reserved-memory.yaml for details.
+ See dtschema reserved-memory/shared-dma-pool.yaml for details.

mediatek,topckgen:
$ref: /schemas/types.yaml#/definitions/phandle
--
2.42.0


2023-10-13 21:12:22

by Simon Glass

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: Drop kernel copy of common reserved-memory bindings

On Fri, 13 Oct 2023 at 13:45, Rob Herring <[email protected]> wrote:
>
> The common reserved-memory bindings have recently been copied from the
> kernel tree into dtschema. The preference is to host common, stable
> bindings in dtschema. As reserved-memory is documented in the DT Spec,
> it meets the criteria.
>
> The v2023.09 version of dtschema is what contains the reserved-memory
> schemas we depend on, so bump the minimum version to that. Otherwise,
> references to these schemas will generate errors.
>
> Signed-off-by: Rob Herring <[email protected]>
> ---
> Documentation/devicetree/bindings/Makefile | 2 +-
> .../remoteproc/renesas,rcar-rproc.yaml | 2 +-
> .../bindings/reserved-memory/framebuffer.yaml | 52 -----
> .../reserved-memory/memory-region.yaml | 40 ----
> .../reserved-memory/reserved-memory.txt | 2 +-
> .../reserved-memory/reserved-memory.yaml | 181 ------------------
> .../reserved-memory/shared-dma-pool.yaml | 97 ----------
> .../bindings/sound/mediatek,mt8188-afe.yaml | 2 +-
> 8 files changed, 4 insertions(+), 374 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
>

Reviewed-by: Simon Glass <[email protected]>

2023-10-16 17:32:25

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: Drop kernel copy of common reserved-memory bindings

On Fri, Oct 13, 2023 at 03:08:49PM -0500, Rob Herring wrote:
> The common reserved-memory bindings have recently been copied from the
> kernel tree into dtschema. The preference is to host common, stable
> bindings in dtschema. As reserved-memory is documented in the DT Spec,
> it meets the criteria.
>
> The v2023.09 version of dtschema is what contains the reserved-memory
> schemas we depend on, so bump the minimum version to that. Otherwise,
> references to these schemas will generate errors.
>
> Signed-off-by: Rob Herring <[email protected]>
> ---
> Documentation/devicetree/bindings/Makefile | 2 +-
> .../remoteproc/renesas,rcar-rproc.yaml | 2 +-
> .../bindings/reserved-memory/framebuffer.yaml | 52 -----
> .../reserved-memory/memory-region.yaml | 40 ----
> .../reserved-memory/reserved-memory.txt | 2 +-
> .../reserved-memory/reserved-memory.yaml | 181 ------------------
> .../reserved-memory/shared-dma-pool.yaml | 97 ----------
> .../bindings/sound/mediatek,mt8188-afe.yaml | 2 +-
> 8 files changed, 4 insertions(+), 374 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
>
> diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
> index 8b395893bd85..3e886194b043 100644
> --- a/Documentation/devicetree/bindings/Makefile
> +++ b/Documentation/devicetree/bindings/Makefile
> @@ -6,7 +6,7 @@ DT_MK_SCHEMA ?= dt-mk-schema
> DT_SCHEMA_LINT = $(shell which yamllint || \
> echo "warning: python package 'yamllint' not installed, skipping" >&2)
>
> -DT_SCHEMA_MIN_VERSION = 2022.3
> +DT_SCHEMA_MIN_VERSION = 2023.9
>
> PHONY += check_dtschema_version
> check_dtschema_version:
> diff --git a/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml
> index 4bea679a0f61..5c280117dc93 100644
> --- a/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/renesas,rcar-rproc.yaml
> @@ -31,7 +31,7 @@ properties:
> remoteproc device. This is variable and describes the memories shared with
> the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
> vrings, ...).
> - (see ../reserved-memory/reserved-memory.yaml)
> + (see reserved-memory/reserved-memory.yaml in dtschema project)

Reviewed-by: Mathieu Poirier <[email protected]>

>
> required:
> - compatible
> diff --git a/Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml b/Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
> deleted file mode 100644
> index 851ec24d6142..000000000000
> --- a/Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> -%YAML 1.2
> ----
> -$id: http://devicetree.org/schemas/reserved-memory/framebuffer.yaml#
> -$schema: http://devicetree.org/meta-schemas/core.yaml#
> -
> -title: /reserved-memory framebuffer node
> -
> -maintainers:
> - - [email protected]
> -
> -allOf:
> - - $ref: reserved-memory.yaml
> -
> -properties:
> - compatible:
> - const: framebuffer
> - description: >
> - This indicates a region of memory meant to be used as a framebuffer for
> - a set of display devices. It can be used by an operating system to keep
> - the framebuffer from being overwritten and use it as the backing memory
> - for a display device (such as simple-framebuffer).
> -
> -unevaluatedProperties: false
> -
> -examples:
> - - |
> - / {
> - compatible = "foo";
> - model = "foo";
> - #address-cells = <1>;
> - #size-cells = <1>;
> -
> - chosen {
> - framebuffer {
> - compatible = "simple-framebuffer";
> - memory-region = <&fb>;
> - };
> - };
> -
> - reserved-memory {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - ranges;
> -
> - fb: framebuffer@80000000 {
> - compatible = "framebuffer";
> - reg = <0x80000000 0x007e9000>;
> - };
> - };
> - };
> -...
> diff --git a/Documentation/devicetree/bindings/reserved-memory/memory-region.yaml b/Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
> deleted file mode 100644
> index 592f180e6b0d..000000000000
> --- a/Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> -%YAML 1.2
> ----
> -$id: http://devicetree.org/schemas/reserved-memory/memory-region.yaml#
> -$schema: http://devicetree.org/meta-schemas/core.yaml#
> -
> -title: Reserved Memory Region
> -
> -maintainers:
> - - [email protected]
> -
> -description: |
> - Regions in the /reserved-memory node may be referenced by other device
> - nodes by adding a memory-region property to the device node.
> -
> -select: true
> -
> -properties:
> - memory-region:
> - $ref: /schemas/types.yaml#/definitions/phandle-array
> - description: >
> - Phandle to a /reserved-memory child node assigned to the device.
> -
> - memory-region-names:
> - $ref: /schemas/types.yaml#/definitions/string-array
> - description: >
> - A list of names, one for each corresponding entry in the
> - memory-region property
> -
> -additionalProperties: true
> -
> -examples:
> - - |
> - fb0: video@12300000 {
> - /* ... */
> - reg = <0x12300000 0x1000>;
> - memory-region = <&display_reserved>;
> - };
> -
> -...
> diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
> index 1810701a8509..8ce72996d500 100644
> --- a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
> +++ b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
> @@ -1 +1 @@
> -This file has been moved to reserved-memory.yaml.
> +This file has been moved to reserved-memory.yaml in the dtschema repository.
> diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> deleted file mode 100644
> index c680e397cfd2..000000000000
> --- a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> +++ /dev/null
> @@ -1,181 +0,0 @@
> -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> -%YAML 1.2
> ----
> -$id: http://devicetree.org/schemas/reserved-memory/reserved-memory.yaml#
> -$schema: http://devicetree.org/meta-schemas/core.yaml#
> -
> -title: /reserved-memory Child Node Common
> -
> -maintainers:
> - - [email protected]
> -
> -description: >
> - Reserved memory is specified as a node under the /reserved-memory node. The
> - operating system shall exclude reserved memory from normal usage one can
> - create child nodes describing particular reserved (excluded from normal use)
> - memory regions. Such memory regions are usually designed for the special
> - usage by various device drivers.
> -
> - Each child of the reserved-memory node specifies one or more regions
> - of reserved memory. Each child node may either use a 'reg' property to
> - specify a specific range of reserved memory, or a 'size' property with
> - optional constraints to request a dynamically allocated block of
> - memory.
> -
> - Following the generic-names recommended practice, node names should
> - reflect the purpose of the node (ie. "framebuffer" or "dma-pool").
> - Unit address (@<address>) should be appended to the name if the node
> - is a static allocation.
> -
> -properties:
> - reg: true
> -
> - size:
> - oneOf:
> - - $ref: /schemas/types.yaml#/definitions/uint32
> - - $ref: /schemas/types.yaml#/definitions/uint64
> - description: >
> - Length based on parent's \#size-cells. Size in bytes of memory to
> - reserve.
> -
> - alignment:
> - oneOf:
> - - $ref: /schemas/types.yaml#/definitions/uint32
> - - $ref: /schemas/types.yaml#/definitions/uint64
> - description: >
> - Length based on parent's \#size-cells. Address boundary for
> - alignment of allocation.
> -
> - alloc-ranges:
> - $ref: /schemas/types.yaml#/definitions/uint32-array
> - description: >
> - Address and Length pairs. Specifies regions of memory that are
> - acceptable to allocate from.
> -
> - iommu-addresses:
> - $ref: /schemas/types.yaml#/definitions/phandle-array
> - description: >
> - A list of phandle and specifier pairs that describe static IO virtual
> - address space mappings and carveouts associated with a given reserved
> - memory region. The phandle in the first cell refers to the device for
> - which the mapping or carveout is to be created.
> -
> - The specifier consists of an address/size pair and denotes the IO
> - virtual address range of the region for the given device. The exact
> - format depends on the values of the "#address-cells" and "#size-cells"
> - properties of the device referenced via the phandle.
> -
> - When used in combination with a "reg" property, an IOVA mapping is to
> - be established for this memory region. One example where this can be
> - useful is to create an identity mapping for physical memory that the
> - firmware has configured some hardware to access (such as a bootsplash
> - framebuffer).
> -
> - If no "reg" property is specified, the "iommu-addresses" property
> - defines carveout regions in the IOVA space for the given device. This
> - can be useful if a certain memory region should not be mapped through
> - the IOMMU.
> -
> - no-map:
> - type: boolean
> - description: >
> - Indicates the operating system must not create a virtual mapping
> - of the region as part of its standard mapping of system memory,
> - nor permit speculative access to it under any circumstances other
> - than under the control of the device driver using the region.
> -
> - reusable:
> - type: boolean
> - description: >
> - The operating system can use the memory in this region with the
> - limitation that the device driver(s) owning the region need to be
> - able to reclaim it back. Typically that means that the operating
> - system can use that region to store volatile or cached data that
> - can be otherwise regenerated or migrated elsewhere.
> -
> -allOf:
> - - if:
> - required:
> - - no-map
> -
> - then:
> - not:
> - required:
> - - reusable
> -
> - - if:
> - required:
> - - reusable
> -
> - then:
> - not:
> - required:
> - - no-map
> -
> -oneOf:
> - - oneOf:
> - - required:
> - - reg
> -
> - - required:
> - - size
> -
> - - oneOf:
> - # IOMMU reservations
> - - required:
> - - iommu-addresses
> -
> - # IOMMU mappings
> - - required:
> - - reg
> - - iommu-addresses
> -
> -additionalProperties: true
> -
> -examples:
> - - |
> - / {
> - compatible = "foo";
> - model = "foo";
> -
> - #address-cells = <2>;
> - #size-cells = <2>;
> -
> - reserved-memory {
> - #address-cells = <2>;
> - #size-cells = <2>;
> - ranges;
> -
> - adsp_resv: reservation-adsp {
> - /*
> - * Restrict IOVA mappings for ADSP buffers to the 512 MiB region
> - * from 0x40000000 - 0x5fffffff. Anything outside is reserved by
> - * the ADSP for I/O memory and private memory allocations.
> - */
> - iommu-addresses = <&adsp 0x0 0x00000000 0x00 0x40000000>,
> - <&adsp 0x0 0x60000000 0xff 0xa0000000>;
> - };
> -
> - fb: framebuffer@90000000 {
> - reg = <0x0 0x90000000 0x0 0x00800000>;
> - iommu-addresses = <&dc0 0x0 0x90000000 0x0 0x00800000>;
> - };
> - };
> -
> - bus@0 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - ranges = <0x0 0x0 0x0 0x40000000>;
> -
> - adsp: adsp@2990000 {
> - reg = <0x2990000 0x2000>;
> - memory-region = <&adsp_resv>;
> - };
> -
> - dc0: display@15200000 {
> - reg = <0x15200000 0x10000>;
> - memory-region = <&fb>;
> - };
> - };
> - };
> -...
> diff --git a/Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml b/Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
> deleted file mode 100644
> index 457de0920cd1..000000000000
> --- a/Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
> +++ /dev/null
> @@ -1,97 +0,0 @@
> -# 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:
> - - [email protected]
> -
> -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>;
> - };
> - };
> -
> -...
> diff --git a/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml b/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml
> index 90520f89208b..77af276ed2a2 100644
> --- a/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml
> +++ b/Documentation/devicetree/bindings/sound/mediatek,mt8188-afe.yaml
> @@ -29,7 +29,7 @@ properties:
> maxItems: 1
> description: |
> Shared memory region for AFE memif. A "shared-dma-pool".
> - See ../reserved-memory/reserved-memory.yaml for details.
> + See dtschema reserved-memory/shared-dma-pool.yaml for details.
>
> mediatek,topckgen:
> $ref: /schemas/types.yaml#/definitions/phandle
> --
> 2.42.0
>

2023-10-19 08:03:20

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: Drop kernel copy of common reserved-memory bindings

Hi Rob,

kernel test robot noticed the following build errors:

[auto build test ERROR on robh/for-next]
[also build test ERROR on krzk-dt/for-next remoteproc/rproc-next broonie-sound/for-next linus/master v6.6-rc6 next-20231018]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Rob-Herring/dt-bindings-Drop-kernel-copy-of-common-reserved-memory-bindings/20231017-125913
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20231013200851.347042-1-robh%40kernel.org
patch subject: [PATCH] dt-bindings: Drop kernel copy of common reserved-memory bindings
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20231019/[email protected]/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231019/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

sort: -:2: disorder: 2023.8.dev2+gd5e5147
>> ERROR: dtschema minimum version is v2023.9

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

2023-10-24 16:42:06

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: Drop kernel copy of common reserved-memory bindings


On Fri, 13 Oct 2023 15:08:49 -0500, Rob Herring wrote:
> The common reserved-memory bindings have recently been copied from the
> kernel tree into dtschema. The preference is to host common, stable
> bindings in dtschema. As reserved-memory is documented in the DT Spec,
> it meets the criteria.
>
> The v2023.09 version of dtschema is what contains the reserved-memory
> schemas we depend on, so bump the minimum version to that. Otherwise,
> references to these schemas will generate errors.
>
> Signed-off-by: Rob Herring <[email protected]>
> ---
> Documentation/devicetree/bindings/Makefile | 2 +-
> .../remoteproc/renesas,rcar-rproc.yaml | 2 +-
> .../bindings/reserved-memory/framebuffer.yaml | 52 -----
> .../reserved-memory/memory-region.yaml | 40 ----
> .../reserved-memory/reserved-memory.txt | 2 +-
> .../reserved-memory/reserved-memory.yaml | 181 ------------------
> .../reserved-memory/shared-dma-pool.yaml | 97 ----------
> .../bindings/sound/mediatek,mt8188-afe.yaml | 2 +-
> 8 files changed, 4 insertions(+), 374 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
>

Applied, thanks!