.../devicetree/bindings/pmem/pmem-region.txt | 65 ------------------- .../devicetree/bindings/pmem/pmem-region.yaml | 49 ++++++++++++++ MAINTAINERS | 2 +- 3 files changed, 50 insertions(+), 66 deletions(-) delete mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.txt create mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.yaml
Convert the PMEM device tree binding from text to YAML. This will allow
device trees with pmem-region nodes to pass dtbs_check.
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Acked-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Drew Fustini <drew@pdp7.com>
---
Dan/Dave/Vishal: does it make sense for this pmem binding patch to go
through the nvdimm tree?
Note: checkpatch complains about "DT binding docs and includes should
be a separate patch". Rob told me that this a false positive. I'm hoping
that I can fix the false positive at some point if I can remember enough
perl :)
v3:
- no functional changes
- add Oliver's Acked-by
- bump version to avoid duplicate message-id mess in v2 and v2 resend:
https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
v2 resend:
- actually put v2 in the Subject
- add Conor's Acked-by
- https://lore.kernel.org/all/20250520-refract-fling-d064e11ddbdf@spud/
v2:
- remove the txt file to make the conversion complete
- https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
v1:
- https://lore.kernel.org/all/20250518035539.7961-1-drew@pdp7.com/
.../devicetree/bindings/pmem/pmem-region.txt | 65 -------------------
.../devicetree/bindings/pmem/pmem-region.yaml | 49 ++++++++++++++
MAINTAINERS | 2 +-
3 files changed, 50 insertions(+), 66 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.txt
create mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.yaml
diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.txt b/Documentation/devicetree/bindings/pmem/pmem-region.txt
deleted file mode 100644
index cd79975e85ec..000000000000
--- a/Documentation/devicetree/bindings/pmem/pmem-region.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-Device-tree bindings for persistent memory regions
------------------------------------------------------
-
-Persistent memory refers to a class of memory devices that are:
-
- a) Usable as main system memory (i.e. cacheable), and
- b) Retain their contents across power failure.
-
-Given b) it is best to think of persistent memory as a kind of memory mapped
-storage device. To ensure data integrity the operating system needs to manage
-persistent regions separately to the normal memory pool. To aid with that this
-binding provides a standardised interface for discovering where persistent
-memory regions exist inside the physical address space.
-
-Bindings for the region nodes:
------------------------------
-
-Required properties:
- - compatible = "pmem-region"
-
- - reg = <base, size>;
- The reg property should specify an address range that is
- translatable to a system physical address range. This address
- range should be mappable as normal system memory would be
- (i.e cacheable).
-
- If the reg property contains multiple address ranges
- each address range will be treated as though it was specified
- in a separate device node. Having multiple address ranges in a
- node implies no special relationship between the two ranges.
-
-Optional properties:
- - Any relevant NUMA associativity properties for the target platform.
-
- - volatile; This property indicates that this region is actually
- backed by non-persistent memory. This lets the OS know that it
- may skip the cache flushes required to ensure data is made
- persistent after a write.
-
- If this property is absent then the OS must assume that the region
- is backed by non-volatile memory.
-
-Examples:
---------------------
-
- /*
- * This node specifies one 4KB region spanning from
- * 0x5000 to 0x5fff that is backed by non-volatile memory.
- */
- pmem@5000 {
- compatible = "pmem-region";
- reg = <0x00005000 0x00001000>;
- };
-
- /*
- * This node specifies two 4KB regions that are backed by
- * volatile (normal) memory.
- */
- pmem@6000 {
- compatible = "pmem-region";
- reg = < 0x00006000 0x00001000
- 0x00008000 0x00001000 >;
- volatile;
- };
-
diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.yaml b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
new file mode 100644
index 000000000000..a4aa4ce3318b
--- /dev/null
+++ b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pmem-region.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+maintainers:
+ - Bjorn Helgaas <bhelgaas@google.com>
+ - Oliver O'Halloran <oohall@gmail.com>
+
+title: Persistent Memory Regions
+
+description: |
+ Persistent memory refers to a class of memory devices that are:
+
+ a) Usable as main system memory (i.e. cacheable), and
+ b) Retain their contents across power failure.
+
+ Given b) it is best to think of persistent memory as a kind of memory mapped
+ storage device. To ensure data integrity the operating system needs to manage
+ persistent regions separately to the normal memory pool. To aid with that this
+ binding provides a standardised interface for discovering where persistent
+ memory regions exist inside the physical address space.
+
+properties:
+ compatible:
+ const: pmem-region
+
+ reg:
+ maxItems: 1
+
+ volatile:
+ description: |
+ Indicates the region is volatile (non-persistent) and the OS can skip
+ cache flushes for writes
+ type: boolean
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ pmem@5000 {
+ compatible = "pmem-region";
+ reg = <0x00005000 0x00001000>;
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index ee93363ec2cb..eba2b81ec568 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13798,7 +13798,7 @@ M: Oliver O'Halloran <oohall@gmail.com>
L: nvdimm@lists.linux.dev
S: Supported
Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
-F: Documentation/devicetree/bindings/pmem/pmem-region.txt
+F: Documentation/devicetree/bindings/pmem/pmem-region.yaml
F: drivers/nvdimm/of_pmem.c
LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
--
2.43.0
On Fri, Jun 06, 2025 at 11:11:17AM -0700, Drew Fustini wrote:
> Convert the PMEM device tree binding from text to YAML. This will allow
> device trees with pmem-region nodes to pass dtbs_check.
>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
> Acked-by: Oliver O'Halloran <oohall@gmail.com>
> Signed-off-by: Drew Fustini <drew@pdp7.com>
> ---
> Dan/Dave/Vishal: does it make sense for this pmem binding patch to go
> through the nvdimm tree?
>
> Note: checkpatch complains about "DT binding docs and includes should
> be a separate patch". Rob told me that this a false positive. I'm hoping
> that I can fix the false positive at some point if I can remember enough
> perl :)
>
> v3:
> - no functional changes
> - add Oliver's Acked-by
> - bump version to avoid duplicate message-id mess in v2 and v2 resend:
> https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
>
> v2 resend:
> - actually put v2 in the Subject
> - add Conor's Acked-by
> - https://lore.kernel.org/all/20250520-refract-fling-d064e11ddbdf@spud/
>
> v2:
> - remove the txt file to make the conversion complete
> - https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
>
> v1:
> - https://lore.kernel.org/all/20250518035539.7961-1-drew@pdp7.com/
>
> .../devicetree/bindings/pmem/pmem-region.txt | 65 -------------------
> .../devicetree/bindings/pmem/pmem-region.yaml | 49 ++++++++++++++
> MAINTAINERS | 2 +-
> 3 files changed, 50 insertions(+), 66 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.txt
> create mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.yaml
>
> diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.txt b/Documentation/devicetree/bindings/pmem/pmem-region.txt
> deleted file mode 100644
> index cd79975e85ec..000000000000
> --- a/Documentation/devicetree/bindings/pmem/pmem-region.txt
> +++ /dev/null
> @@ -1,65 +0,0 @@
> -Device-tree bindings for persistent memory regions
> ------------------------------------------------------
> -
> -Persistent memory refers to a class of memory devices that are:
> -
> - a) Usable as main system memory (i.e. cacheable), and
> - b) Retain their contents across power failure.
> -
> -Given b) it is best to think of persistent memory as a kind of memory mapped
> -storage device. To ensure data integrity the operating system needs to manage
> -persistent regions separately to the normal memory pool. To aid with that this
> -binding provides a standardised interface for discovering where persistent
> -memory regions exist inside the physical address space.
> -
> -Bindings for the region nodes:
> ------------------------------
> -
> -Required properties:
> - - compatible = "pmem-region"
> -
> - - reg = <base, size>;
> - The reg property should specify an address range that is
> - translatable to a system physical address range. This address
> - range should be mappable as normal system memory would be
> - (i.e cacheable).
> -
> - If the reg property contains multiple address ranges
> - each address range will be treated as though it was specified
> - in a separate device node. Having multiple address ranges in a
> - node implies no special relationship between the two ranges.
> -
> -Optional properties:
> - - Any relevant NUMA associativity properties for the target platform.
> -
> - - volatile; This property indicates that this region is actually
> - backed by non-persistent memory. This lets the OS know that it
> - may skip the cache flushes required to ensure data is made
> - persistent after a write.
> -
> - If this property is absent then the OS must assume that the region
> - is backed by non-volatile memory.
> -
> -Examples:
> ---------------------
> -
> - /*
> - * This node specifies one 4KB region spanning from
> - * 0x5000 to 0x5fff that is backed by non-volatile memory.
> - */
> - pmem@5000 {
> - compatible = "pmem-region";
> - reg = <0x00005000 0x00001000>;
> - };
> -
> - /*
> - * This node specifies two 4KB regions that are backed by
> - * volatile (normal) memory.
> - */
> - pmem@6000 {
> - compatible = "pmem-region";
> - reg = < 0x00006000 0x00001000
> - 0x00008000 0x00001000 >;
> - volatile;
> - };
> -
> diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.yaml b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> new file mode 100644
> index 000000000000..a4aa4ce3318b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> @@ -0,0 +1,49 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pmem-region.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +maintainers:
> + - Bjorn Helgaas <bhelgaas@google.com>
Drop Bjorn. He only did typo fixes on this.
> + - Oliver O'Halloran <oohall@gmail.com>
> +
> +title: Persistent Memory Regions
> +
> +description: |
> + Persistent memory refers to a class of memory devices that are:
> +
> + a) Usable as main system memory (i.e. cacheable), and
> + b) Retain their contents across power failure.
> +
> + Given b) it is best to think of persistent memory as a kind of memory mapped
> + storage device. To ensure data integrity the operating system needs to manage
> + persistent regions separately to the normal memory pool. To aid with that this
> + binding provides a standardised interface for discovering where persistent
> + memory regions exist inside the physical address space.
> +
> +properties:
> + compatible:
> + const: pmem-region
> +
> + reg:
> + maxItems: 1
> +
> + volatile:
> + description: |
Don't need '|' here.
> + Indicates the region is volatile (non-persistent) and the OS can skip
> + cache flushes for writes
> + type: boolean
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + pmem@5000 {
> + compatible = "pmem-region";
> + reg = <0x00005000 0x00001000>;
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index ee93363ec2cb..eba2b81ec568 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -13798,7 +13798,7 @@ M: Oliver O'Halloran <oohall@gmail.com>
> L: nvdimm@lists.linux.dev
> S: Supported
> Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
> -F: Documentation/devicetree/bindings/pmem/pmem-region.txt
> +F: Documentation/devicetree/bindings/pmem/pmem-region.yaml
> F: drivers/nvdimm/of_pmem.c
>
> LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
> --
> 2.43.0
>
On Mon, Jun 09, 2025 at 08:32:41AM -0500, Rob Herring wrote:
> On Fri, Jun 06, 2025 at 11:11:17AM -0700, Drew Fustini wrote:
> > Convert the PMEM device tree binding from text to YAML. This will allow
> > device trees with pmem-region nodes to pass dtbs_check.
> >
> > Acked-by: Conor Dooley <conor.dooley@microchip.com>
> > Acked-by: Oliver O'Halloran <oohall@gmail.com>
> > Signed-off-by: Drew Fustini <drew@pdp7.com>
> > ---
> > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go
> > through the nvdimm tree?
> >
> > Note: checkpatch complains about "DT binding docs and includes should
> > be a separate patch". Rob told me that this a false positive. I'm hoping
> > that I can fix the false positive at some point if I can remember enough
> > perl :)
> >
> > v3:
> > - no functional changes
> > - add Oliver's Acked-by
> > - bump version to avoid duplicate message-id mess in v2 and v2 resend:
> > https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
> >
> > v2 resend:
> > - actually put v2 in the Subject
> > - add Conor's Acked-by
> > - https://lore.kernel.org/all/20250520-refract-fling-d064e11ddbdf@spud/
> >
> > v2:
> > - remove the txt file to make the conversion complete
> > - https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
> >
> > v1:
> > - https://lore.kernel.org/all/20250518035539.7961-1-drew@pdp7.com/
> >
> > .../devicetree/bindings/pmem/pmem-region.txt | 65 -------------------
> > .../devicetree/bindings/pmem/pmem-region.yaml | 49 ++++++++++++++
> > MAINTAINERS | 2 +-
> > 3 files changed, 50 insertions(+), 66 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.txt
> > create mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.txt b/Documentation/devicetree/bindings/pmem/pmem-region.txt
> > deleted file mode 100644
> > index cd79975e85ec..000000000000
> > --- a/Documentation/devicetree/bindings/pmem/pmem-region.txt
> > +++ /dev/null
> > @@ -1,65 +0,0 @@
> > -Device-tree bindings for persistent memory regions
> > ------------------------------------------------------
> > -
> > -Persistent memory refers to a class of memory devices that are:
> > -
> > - a) Usable as main system memory (i.e. cacheable), and
> > - b) Retain their contents across power failure.
> > -
> > -Given b) it is best to think of persistent memory as a kind of memory mapped
> > -storage device. To ensure data integrity the operating system needs to manage
> > -persistent regions separately to the normal memory pool. To aid with that this
> > -binding provides a standardised interface for discovering where persistent
> > -memory regions exist inside the physical address space.
> > -
> > -Bindings for the region nodes:
> > ------------------------------
> > -
> > -Required properties:
> > - - compatible = "pmem-region"
> > -
> > - - reg = <base, size>;
> > - The reg property should specify an address range that is
> > - translatable to a system physical address range. This address
> > - range should be mappable as normal system memory would be
> > - (i.e cacheable).
> > -
> > - If the reg property contains multiple address ranges
> > - each address range will be treated as though it was specified
> > - in a separate device node. Having multiple address ranges in a
> > - node implies no special relationship between the two ranges.
> > -
> > -Optional properties:
> > - - Any relevant NUMA associativity properties for the target platform.
> > -
> > - - volatile; This property indicates that this region is actually
> > - backed by non-persistent memory. This lets the OS know that it
> > - may skip the cache flushes required to ensure data is made
> > - persistent after a write.
> > -
> > - If this property is absent then the OS must assume that the region
> > - is backed by non-volatile memory.
> > -
> > -Examples:
> > ---------------------
> > -
> > - /*
> > - * This node specifies one 4KB region spanning from
> > - * 0x5000 to 0x5fff that is backed by non-volatile memory.
> > - */
> > - pmem@5000 {
> > - compatible = "pmem-region";
> > - reg = <0x00005000 0x00001000>;
> > - };
> > -
> > - /*
> > - * This node specifies two 4KB regions that are backed by
> > - * volatile (normal) memory.
> > - */
> > - pmem@6000 {
> > - compatible = "pmem-region";
> > - reg = < 0x00006000 0x00001000
> > - 0x00008000 0x00001000 >;
> > - volatile;
> > - };
> > -
> > diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.yaml b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > new file mode 100644
> > index 000000000000..a4aa4ce3318b
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > @@ -0,0 +1,49 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/pmem-region.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +maintainers:
> > + - Bjorn Helgaas <bhelgaas@google.com>
>
> Drop Bjorn. He only did typo fixes on this.
>
> > + - Oliver O'Halloran <oohall@gmail.com>
> > +
> > +title: Persistent Memory Regions
> > +
> > +description: |
> > + Persistent memory refers to a class of memory devices that are:
> > +
> > + a) Usable as main system memory (i.e. cacheable), and
> > + b) Retain their contents across power failure.
> > +
> > + Given b) it is best to think of persistent memory as a kind of memory mapped
> > + storage device. To ensure data integrity the operating system needs to manage
> > + persistent regions separately to the normal memory pool. To aid with that this
> > + binding provides a standardised interface for discovering where persistent
> > + memory regions exist inside the physical address space.
> > +
> > +properties:
> > + compatible:
> > + const: pmem-region
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + volatile:
> > + description: |
>
> Don't need '|' here.
Rob - Thanks for the feedback. Should I send a new revision with these
two changes?
Drew
Drew Fustini wrote:
> On Mon, Jun 09, 2025 at 08:32:41AM -0500, Rob Herring wrote:
> > On Fri, Jun 06, 2025 at 11:11:17AM -0700, Drew Fustini wrote:
> > > Convert the PMEM device tree binding from text to YAML. This will allow
> > > device trees with pmem-region nodes to pass dtbs_check.
> > >
> > > Acked-by: Conor Dooley <conor.dooley@microchip.com>
> > > Acked-by: Oliver O'Halloran <oohall@gmail.com>
> > > Signed-off-by: Drew Fustini <drew@pdp7.com>
> > > ---
> > > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go
> > > through the nvdimm tree?
> > >
> > > Note: checkpatch complains about "DT binding docs and includes should
> > > be a separate patch". Rob told me that this a false positive. I'm hoping
> > > that I can fix the false positive at some point if I can remember enough
> > > perl :)
> > >
> > > v3:
> > > - no functional changes
> > > - add Oliver's Acked-by
> > > - bump version to avoid duplicate message-id mess in v2 and v2 resend:
> > > https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
> > >
> > > v2 resend:
> > > - actually put v2 in the Subject
> > > - add Conor's Acked-by
> > > - https://lore.kernel.org/all/20250520-refract-fling-d064e11ddbdf@spud/
> > >
> > > v2:
> > > - remove the txt file to make the conversion complete
> > > - https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
> > >
> > > v1:
> > > - https://lore.kernel.org/all/20250518035539.7961-1-drew@pdp7.com/
> > >
> > > .../devicetree/bindings/pmem/pmem-region.txt | 65 -------------------
> > > .../devicetree/bindings/pmem/pmem-region.yaml | 49 ++++++++++++++
> > > MAINTAINERS | 2 +-
> > > 3 files changed, 50 insertions(+), 66 deletions(-)
> > > delete mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.txt
> > > create mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.txt b/Documentation/devicetree/bindings/pmem/pmem-region.txt
> > > deleted file mode 100644
> > > index cd79975e85ec..000000000000
> > > --- a/Documentation/devicetree/bindings/pmem/pmem-region.txt
> > > +++ /dev/null
> > > @@ -1,65 +0,0 @@
> > > -Device-tree bindings for persistent memory regions
> > > ------------------------------------------------------
> > > -
> > > -Persistent memory refers to a class of memory devices that are:
> > > -
> > > - a) Usable as main system memory (i.e. cacheable), and
> > > - b) Retain their contents across power failure.
> > > -
> > > -Given b) it is best to think of persistent memory as a kind of memory mapped
> > > -storage device. To ensure data integrity the operating system needs to manage
> > > -persistent regions separately to the normal memory pool. To aid with that this
> > > -binding provides a standardised interface for discovering where persistent
> > > -memory regions exist inside the physical address space.
> > > -
> > > -Bindings for the region nodes:
> > > ------------------------------
> > > -
> > > -Required properties:
> > > - - compatible = "pmem-region"
> > > -
> > > - - reg = <base, size>;
> > > - The reg property should specify an address range that is
> > > - translatable to a system physical address range. This address
> > > - range should be mappable as normal system memory would be
> > > - (i.e cacheable).
> > > -
> > > - If the reg property contains multiple address ranges
> > > - each address range will be treated as though it was specified
> > > - in a separate device node. Having multiple address ranges in a
> > > - node implies no special relationship between the two ranges.
> > > -
> > > -Optional properties:
> > > - - Any relevant NUMA associativity properties for the target platform.
> > > -
> > > - - volatile; This property indicates that this region is actually
> > > - backed by non-persistent memory. This lets the OS know that it
> > > - may skip the cache flushes required to ensure data is made
> > > - persistent after a write.
> > > -
> > > - If this property is absent then the OS must assume that the region
> > > - is backed by non-volatile memory.
> > > -
> > > -Examples:
> > > ---------------------
> > > -
> > > - /*
> > > - * This node specifies one 4KB region spanning from
> > > - * 0x5000 to 0x5fff that is backed by non-volatile memory.
> > > - */
> > > - pmem@5000 {
> > > - compatible = "pmem-region";
> > > - reg = <0x00005000 0x00001000>;
> > > - };
> > > -
> > > - /*
> > > - * This node specifies two 4KB regions that are backed by
> > > - * volatile (normal) memory.
> > > - */
> > > - pmem@6000 {
> > > - compatible = "pmem-region";
> > > - reg = < 0x00006000 0x00001000
> > > - 0x00008000 0x00001000 >;
> > > - volatile;
> > > - };
> > > -
> > > diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.yaml b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > > new file mode 100644
> > > index 000000000000..a4aa4ce3318b
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > > @@ -0,0 +1,49 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/pmem-region.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +maintainers:
> > > + - Bjorn Helgaas <bhelgaas@google.com>
> >
> > Drop Bjorn. He only did typo fixes on this.
> >
> > > + - Oliver O'Halloran <oohall@gmail.com>
> > > +
> > > +title: Persistent Memory Regions
> > > +
> > > +description: |
> > > + Persistent memory refers to a class of memory devices that are:
> > > +
> > > + a) Usable as main system memory (i.e. cacheable), and
> > > + b) Retain their contents across power failure.
> > > +
> > > + Given b) it is best to think of persistent memory as a kind of memory mapped
> > > + storage device. To ensure data integrity the operating system needs to manage
> > > + persistent regions separately to the normal memory pool. To aid with that this
> > > + binding provides a standardised interface for discovering where persistent
> > > + memory regions exist inside the physical address space.
> > > +
> > > +properties:
> > > + compatible:
> > > + const: pmem-region
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + volatile:
> > > + description: |
> >
> > Don't need '|' here.
>
> Rob - Thanks for the feedback. Should I send a new revision with these
> two changes?
I can do a clean up as I have not sent to Linus yet.
Here are the changes if you approve I'll change it and push to linux-next.
Ira
diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.yaml b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
index a4aa4ce3318b..bd0f0c793f03 100644
--- a/Documentation/devicetree/bindings/pmem/pmem-region.yaml
+++ b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
@@ -5,7 +5,6 @@ $id: http://devicetree.org/schemas/pmem-region.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
maintainers:
- - Bjorn Helgaas <bhelgaas@google.com>
- Oliver O'Halloran <oohall@gmail.com>
title: Persistent Memory Regions
@@ -30,7 +29,7 @@ properties:
maxItems: 1
volatile:
- description: |
+ description:
Indicates the region is volatile (non-persistent) and the OS can skip
cache flushes for writes
type: boolean
On Wed, Jun 11, 2025 at 09:33:17AM -0500, Ira Weiny wrote:
> Drew Fustini wrote:
> > On Mon, Jun 09, 2025 at 08:32:41AM -0500, Rob Herring wrote:
> > > On Fri, Jun 06, 2025 at 11:11:17AM -0700, Drew Fustini wrote:
> > > > Convert the PMEM device tree binding from text to YAML. This will allow
> > > > device trees with pmem-region nodes to pass dtbs_check.
> > > >
> > > > Acked-by: Conor Dooley <conor.dooley@microchip.com>
> > > > Acked-by: Oliver O'Halloran <oohall@gmail.com>
> > > > Signed-off-by: Drew Fustini <drew@pdp7.com>
> > > > ---
> > > > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go
> > > > through the nvdimm tree?
> > > >
> > > > Note: checkpatch complains about "DT binding docs and includes should
> > > > be a separate patch". Rob told me that this a false positive. I'm hoping
> > > > that I can fix the false positive at some point if I can remember enough
> > > > perl :)
> > > >
> > > > v3:
> > > > - no functional changes
> > > > - add Oliver's Acked-by
> > > > - bump version to avoid duplicate message-id mess in v2 and v2 resend:
> > > > https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
> > > >
> > > > v2 resend:
> > > > - actually put v2 in the Subject
> > > > - add Conor's Acked-by
> > > > - https://lore.kernel.org/all/20250520-refract-fling-d064e11ddbdf@spud/
> > > >
> > > > v2:
> > > > - remove the txt file to make the conversion complete
> > > > - https://lore.kernel.org/all/20250520021440.24324-1-drew@pdp7.com/
> > > >
> > > > v1:
> > > > - https://lore.kernel.org/all/20250518035539.7961-1-drew@pdp7.com/
> > > >
> > > > .../devicetree/bindings/pmem/pmem-region.txt | 65 -------------------
> > > > .../devicetree/bindings/pmem/pmem-region.yaml | 49 ++++++++++++++
> > > > MAINTAINERS | 2 +-
> > > > 3 files changed, 50 insertions(+), 66 deletions(-)
> > > > delete mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.txt
> > > > create mode 100644 Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.txt b/Documentation/devicetree/bindings/pmem/pmem-region.txt
> > > > deleted file mode 100644
> > > > index cd79975e85ec..000000000000
> > > > --- a/Documentation/devicetree/bindings/pmem/pmem-region.txt
> > > > +++ /dev/null
> > > > @@ -1,65 +0,0 @@
> > > > -Device-tree bindings for persistent memory regions
> > > > ------------------------------------------------------
> > > > -
> > > > -Persistent memory refers to a class of memory devices that are:
> > > > -
> > > > - a) Usable as main system memory (i.e. cacheable), and
> > > > - b) Retain their contents across power failure.
> > > > -
> > > > -Given b) it is best to think of persistent memory as a kind of memory mapped
> > > > -storage device. To ensure data integrity the operating system needs to manage
> > > > -persistent regions separately to the normal memory pool. To aid with that this
> > > > -binding provides a standardised interface for discovering where persistent
> > > > -memory regions exist inside the physical address space.
> > > > -
> > > > -Bindings for the region nodes:
> > > > ------------------------------
> > > > -
> > > > -Required properties:
> > > > - - compatible = "pmem-region"
> > > > -
> > > > - - reg = <base, size>;
> > > > - The reg property should specify an address range that is
> > > > - translatable to a system physical address range. This address
> > > > - range should be mappable as normal system memory would be
> > > > - (i.e cacheable).
> > > > -
> > > > - If the reg property contains multiple address ranges
> > > > - each address range will be treated as though it was specified
> > > > - in a separate device node. Having multiple address ranges in a
> > > > - node implies no special relationship between the two ranges.
> > > > -
> > > > -Optional properties:
> > > > - - Any relevant NUMA associativity properties for the target platform.
> > > > -
> > > > - - volatile; This property indicates that this region is actually
> > > > - backed by non-persistent memory. This lets the OS know that it
> > > > - may skip the cache flushes required to ensure data is made
> > > > - persistent after a write.
> > > > -
> > > > - If this property is absent then the OS must assume that the region
> > > > - is backed by non-volatile memory.
> > > > -
> > > > -Examples:
> > > > ---------------------
> > > > -
> > > > - /*
> > > > - * This node specifies one 4KB region spanning from
> > > > - * 0x5000 to 0x5fff that is backed by non-volatile memory.
> > > > - */
> > > > - pmem@5000 {
> > > > - compatible = "pmem-region";
> > > > - reg = <0x00005000 0x00001000>;
> > > > - };
> > > > -
> > > > - /*
> > > > - * This node specifies two 4KB regions that are backed by
> > > > - * volatile (normal) memory.
> > > > - */
> > > > - pmem@6000 {
> > > > - compatible = "pmem-region";
> > > > - reg = < 0x00006000 0x00001000
> > > > - 0x00008000 0x00001000 >;
> > > > - volatile;
> > > > - };
> > > > -
> > > > diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.yaml b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > > > new file mode 100644
> > > > index 000000000000..a4aa4ce3318b
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> > > > @@ -0,0 +1,49 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/pmem-region.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +maintainers:
> > > > + - Bjorn Helgaas <bhelgaas@google.com>
> > >
> > > Drop Bjorn. He only did typo fixes on this.
> > >
> > > > + - Oliver O'Halloran <oohall@gmail.com>
> > > > +
> > > > +title: Persistent Memory Regions
> > > > +
> > > > +description: |
> > > > + Persistent memory refers to a class of memory devices that are:
> > > > +
> > > > + a) Usable as main system memory (i.e. cacheable), and
> > > > + b) Retain their contents across power failure.
> > > > +
> > > > + Given b) it is best to think of persistent memory as a kind of memory mapped
> > > > + storage device. To ensure data integrity the operating system needs to manage
> > > > + persistent regions separately to the normal memory pool. To aid with that this
> > > > + binding provides a standardised interface for discovering where persistent
> > > > + memory regions exist inside the physical address space.
> > > > +
> > > > +properties:
> > > > + compatible:
> > > > + const: pmem-region
> > > > +
> > > > + reg:
> > > > + maxItems: 1
> > > > +
> > > > + volatile:
> > > > + description: |
> > >
> > > Don't need '|' here.
> >
> > Rob - Thanks for the feedback. Should I send a new revision with these
> > two changes?
>
> I can do a clean up as I have not sent to Linus yet.
>
> Here are the changes if you approve I'll change it and push to linux-next.
>
> Ira
>
> diff --git a/Documentation/devicetree/bindings/pmem/pmem-region.yaml b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> index a4aa4ce3318b..bd0f0c793f03 100644
> --- a/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> +++ b/Documentation/devicetree/bindings/pmem/pmem-region.yaml
> @@ -5,7 +5,6 @@ $id: http://devicetree.org/schemas/pmem-region.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> maintainers:
> - - Bjorn Helgaas <bhelgaas@google.com>
> - Oliver O'Halloran <oohall@gmail.com>
>
> title: Persistent Memory Regions
> @@ -30,7 +29,7 @@ properties:
> maxItems: 1
>
> volatile:
> - description: |
> + description:
> Indicates the region is volatile (non-persistent) and the OS can skip
> cache flushes for writes
> type: boolean
Thanks for fixing it up. That looks good to me.
Drew
[ add Ira ] Drew Fustini wrote: > Convert the PMEM device tree binding from text to YAML. This will allow > device trees with pmem-region nodes to pass dtbs_check. > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > Acked-by: Oliver O'Halloran <oohall@gmail.com> > Signed-off-by: Drew Fustini <drew@pdp7.com> > --- > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go > through the nvdimm tree? Ira has been handling nvdimm pull requests as of late. Oliver's ack is sufficient for me. Acked-by: Dan Williams <dan.j.williams@intel.com> @Ira do you have anything else pending?
Dan Williams wrote:
> [ add Ira ]
>
> Drew Fustini wrote:
> > Convert the PMEM device tree binding from text to YAML. This will allow
> > device trees with pmem-region nodes to pass dtbs_check.
> >
> > Acked-by: Conor Dooley <conor.dooley@microchip.com>
> > Acked-by: Oliver O'Halloran <oohall@gmail.com>
> > Signed-off-by: Drew Fustini <drew@pdp7.com>
> > ---
> > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go
> > through the nvdimm tree?
>
> Ira has been handling nvdimm pull requests as of late. Oliver's ack is
> sufficient for me.
>
> Acked-by: Dan Williams <dan.j.williams@intel.com>
>
> @Ira do you have anything else pending?
>
I don't. I've never built the device tree make targets to test.
The docs[1] say to run make dtbs_check but it is failing:
$ make dtbs_check
make[1]: *** No rule to make target 'dtbs_check'. Stop.
make: *** [Makefile:248: __sub-make] Error 2
dt_binding_check fails too.
$ make dt_binding_check
SCHEMA Documentation/devicetree/bindings/processed-schema.json
Traceback (most recent call last):
File "/usr/bin/dt-mk-schema", line 8, in <module>
sys.exit(main())
~~~~^^
File "/usr/lib/python3.13/site-packages/dtschema/mk_schema.py", line 28, in main
schemas = dtschema.DTValidator(args.schemas).schemas
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 373, in __init__
self.make_property_type_cache()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 460, in make_property_type_cache
self.props, self.pat_props = get_prop_types(self.schemas)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 194, in get_prop_types
del props[r'^[a-z][a-z0-9\-]*$']
~~~~~^^^^^^^^^^^^^^^^^^^^^^^
KeyError: '^[a-z][a-z0-9\\-]*$'
make[2]: *** [Documentation/devicetree/bindings/Makefile:63: Documentation/devicetree/bindings/processed-schema.json] Error 1
make[2]: *** Deleting file 'Documentation/devicetree/bindings/processed-schema.json'
make[1]: *** [/home/iweiny/dev/linux-nvdimm/Makefile:1522: dt_binding_schemas] Error 2
make: *** [Makefile:248: __sub-make] Error 2
How do I test this?
Ira
[1] https://docs.kernel.org/devicetree/bindings/writing-schema.html
On Mon, Jun 09, 2025 at 09:31:26AM -0500, Ira Weiny wrote: > Dan Williams wrote: > > [ add Ira ] > > > > Drew Fustini wrote: > > > Convert the PMEM device tree binding from text to YAML. This will allow > > > device trees with pmem-region nodes to pass dtbs_check. > > > > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > Acked-by: Oliver O'Halloran <oohall@gmail.com> > > > Signed-off-by: Drew Fustini <drew@pdp7.com> > > > --- > > > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go > > > through the nvdimm tree? > > > > Ira has been handling nvdimm pull requests as of late. Oliver's ack is > > sufficient for me. > > > > Acked-by: Dan Williams <dan.j.williams@intel.com> > > > > @Ira do you have anything else pending? > > > > I don't. I've never built the device tree make targets to test. > > The docs[1] say to run make dtbs_check but it is failing: > > $ make dtbs_check > make[1]: *** No rule to make target 'dtbs_check'. Stop. > make: *** [Makefile:248: __sub-make] Error 2 I believe this is because the ARCH is set to x86 and I don't believe dtbs_check is valid for that. I work on riscv which does use device tree so I use this command: make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- dtbs_check > > > dt_binding_check fails too. > > $ make dt_binding_check > SCHEMA Documentation/devicetree/bindings/processed-schema.json > Traceback (most recent call last): > File "/usr/bin/dt-mk-schema", line 8, in <module> > sys.exit(main()) > ~~~~^^ > File "/usr/lib/python3.13/site-packages/dtschema/mk_schema.py", line 28, in main > schemas = dtschema.DTValidator(args.schemas).schemas > ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 373, in __init__ > self.make_property_type_cache() > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 460, in make_property_type_cache > self.props, self.pat_props = get_prop_types(self.schemas) > ~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 194, in get_prop_types > del props[r'^[a-z][a-z0-9\-]*$'] > ~~~~~^^^^^^^^^^^^^^^^^^^^^^^ > KeyError: '^[a-z][a-z0-9\\-]*$' > make[2]: *** [Documentation/devicetree/bindings/Makefile:63: Documentation/devicetree/bindings/processed-schema.json] Error 1 > make[2]: *** Deleting file 'Documentation/devicetree/bindings/processed-schema.json' > make[1]: *** [/home/iweiny/dev/linux-nvdimm/Makefile:1522: dt_binding_schemas] Error 2 > make: *** [Makefile:248: __sub-make] Error 2 > > How do I test this? dt_binding_check should work on x86. Maybe you don't have dtschema and yamllint installed? You should be able to install with: pip3 install dtschema yamllint And run the binding check with: make dt_binding_check DT_SCHEMA_FILES=pmem-region.yaml You should see the following output: SCHEMA Documentation/devicetree/bindings/processed-schema.json CHKDT ./Documentation/devicetree/bindings LINT ./Documentation/devicetree/bindings DTEX Documentation/devicetree/bindings/pmem/pmem-region.example.dts DTC [C] Documentation/devicetree/bindings/pmem/pmem-region.example.dtb Thanks, Drew
Drew Fustini wrote: > On Mon, Jun 09, 2025 at 09:31:26AM -0500, Ira Weiny wrote: > > Dan Williams wrote: > > > [ add Ira ] > > > > > > Drew Fustini wrote: > > > > Convert the PMEM device tree binding from text to YAML. This will allow > > > > device trees with pmem-region nodes to pass dtbs_check. > > > > > > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > > Acked-by: Oliver O'Halloran <oohall@gmail.com> > > > > Signed-off-by: Drew Fustini <drew@pdp7.com> > > > > --- > > > > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go > > > > through the nvdimm tree? > > > > > > Ira has been handling nvdimm pull requests as of late. Oliver's ack is > > > sufficient for me. > > > > > > Acked-by: Dan Williams <dan.j.williams@intel.com> > > > > > > @Ira do you have anything else pending? > > > > > > > I don't. I've never built the device tree make targets to test. > > > > The docs[1] say to run make dtbs_check but it is failing: > > > > $ make dtbs_check > > make[1]: *** No rule to make target 'dtbs_check'. Stop. > > make: *** [Makefile:248: __sub-make] Error 2 > > I believe this is because the ARCH is set to x86 and I don't believe > dtbs_check is valid for that. I work on riscv which does use device tree > so I use this command: > > make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- dtbs_check Yea I'm not set up for a cross compile. > > > > > > > > dt_binding_check fails too. > > > > $ make dt_binding_check > > SCHEMA Documentation/devicetree/bindings/processed-schema.json > > Traceback (most recent call last): > > File "/usr/bin/dt-mk-schema", line 8, in <module> > > sys.exit(main()) > > ~~~~^^ > > File "/usr/lib/python3.13/site-packages/dtschema/mk_schema.py", line 28, in main > > schemas = dtschema.DTValidator(args.schemas).schemas > > ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 373, in __init__ > > self.make_property_type_cache() > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ > > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 460, in make_property_type_cache > > self.props, self.pat_props = get_prop_types(self.schemas) > > ~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 194, in get_prop_types > > del props[r'^[a-z][a-z0-9\-]*$'] > > ~~~~~^^^^^^^^^^^^^^^^^^^^^^^ > > KeyError: '^[a-z][a-z0-9\\-]*$' > > make[2]: *** [Documentation/devicetree/bindings/Makefile:63: Documentation/devicetree/bindings/processed-schema.json] Error 1 > > make[2]: *** Deleting file 'Documentation/devicetree/bindings/processed-schema.json' > > make[1]: *** [/home/iweiny/dev/linux-nvdimm/Makefile:1522: dt_binding_schemas] Error 2 > > make: *** [Makefile:248: __sub-make] Error 2 > > > > How do I test this? > > dt_binding_check should work on x86. Maybe you don't have dtschema and > yamllint installed? > > You should be able to install with: > > pip3 install dtschema yamllint > > And run the binding check with: > > make dt_binding_check DT_SCHEMA_FILES=pmem-region.yaml > > You should see the following output: > > SCHEMA Documentation/devicetree/bindings/processed-schema.json > CHKDT ./Documentation/devicetree/bindings > LINT ./Documentation/devicetree/bindings > DTEX Documentation/devicetree/bindings/pmem/pmem-region.example.dts > DTC [C] Documentation/devicetree/bindings/pmem/pmem-region.example.dtb Thanks that worked! I'll get a PR set up, Ira
On Mon, Jun 09, 2025 at 07:10:42PM -0700, Drew Fustini wrote: > On Mon, Jun 09, 2025 at 09:31:26AM -0500, Ira Weiny wrote: > > Dan Williams wrote: > > > [ add Ira ] > > > > > > Drew Fustini wrote: > > > > Convert the PMEM device tree binding from text to YAML. This will allow > > > > device trees with pmem-region nodes to pass dtbs_check. > > > > > > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > > Acked-by: Oliver O'Halloran <oohall@gmail.com> > > > > Signed-off-by: Drew Fustini <drew@pdp7.com> > > > > --- > > > > Dan/Dave/Vishal: does it make sense for this pmem binding patch to go > > > > through the nvdimm tree? > > > > > > Ira has been handling nvdimm pull requests as of late. Oliver's ack is > > > sufficient for me. > > > > > > Acked-by: Dan Williams <dan.j.williams@intel.com> > > > > > > @Ira do you have anything else pending? > > > > > > > I don't. I've never built the device tree make targets to test. > > > > The docs[1] say to run make dtbs_check but it is failing: > > > > $ make dtbs_check > > make[1]: *** No rule to make target 'dtbs_check'. Stop. > > make: *** [Makefile:248: __sub-make] Error 2 > > I believe this is because the ARCH is set to x86 and I don't believe > dtbs_check is valid for that. I work on riscv which does use device tree > so I use this command: > > make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- dtbs_check > > > > > > > > dt_binding_check fails too. > > > > $ make dt_binding_check > > SCHEMA Documentation/devicetree/bindings/processed-schema.json > > Traceback (most recent call last): > > File "/usr/bin/dt-mk-schema", line 8, in <module> > > sys.exit(main()) > > ~~~~^^ > > File "/usr/lib/python3.13/site-packages/dtschema/mk_schema.py", line 28, in main > > schemas = dtschema.DTValidator(args.schemas).schemas > > ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 373, in __init__ > > self.make_property_type_cache() > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ > > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 460, in make_property_type_cache > > self.props, self.pat_props = get_prop_types(self.schemas) > > ~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > > File "/usr/lib/python3.13/site-packages/dtschema/validator.py", line 194, in get_prop_types > > del props[r'^[a-z][a-z0-9\-]*$'] > > ~~~~~^^^^^^^^^^^^^^^^^^^^^^^ > > KeyError: '^[a-z][a-z0-9\\-]*$' > > make[2]: *** [Documentation/devicetree/bindings/Makefile:63: Documentation/devicetree/bindings/processed-schema.json] Error 1 > > make[2]: *** Deleting file 'Documentation/devicetree/bindings/processed-schema.json' > > make[1]: *** [/home/iweiny/dev/linux-nvdimm/Makefile:1522: dt_binding_schemas] Error 2 > > make: *** [Makefile:248: __sub-make] Error 2 > > > > How do I test this? > > dt_binding_check should work on x86. Maybe you don't have dtschema and > yamllint installed? > > You should be able to install with: > > pip3 install dtschema yamllint > > And run the binding check with: > > make dt_binding_check DT_SCHEMA_FILES=pmem-region.yaml > > You should see the following output: > > SCHEMA Documentation/devicetree/bindings/processed-schema.json > CHKDT ./Documentation/devicetree/bindings > LINT ./Documentation/devicetree/bindings > DTEX Documentation/devicetree/bindings/pmem/pmem-region.example.dts > DTC [C] Documentation/devicetree/bindings/pmem/pmem-region.example.dtb > > Thanks, > Drew I'm also on libera.chat [1] irc as drewfustini. There is a #devicetree channel where we should be able to get things sorted quickly if you are still getting those errors. Thanks, Drew [1] https://libera.chat/
© 2016 - 2025 Red Hat, Inc.