* [PATCH RFC 0/2] Introduce ddr[3-4]-channel binding @ 2025-06-26 19:48 Clément Le Goffic 2025-06-26 19:48 ` [PATCH RFC 1/2] dt-bindings: memory: add jedec,ddr[3-4]-channel binding Clément Le Goffic 2025-06-26 19:48 ` [PATCH RFC 2/2] dt-bindings: perf: stm32: introduce DDRPERFM dt-bindings Clément Le Goffic 0 siblings, 2 replies; 6+ messages in thread From: Clément Le Goffic @ 2025-06-26 19:48 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Will Deacon, Mark Rutland, Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue Cc: linux-kernel, devicetree, linux-arm-kernel, linux-perf-users, linux-stm32, Clément Le Goffic This series aims to request comments for the ddr-channel binding as I'll need them for the stm32-ddr-pmu driver. The V1 of the driver and a start of discussion can be found here: https://lore.kernel.org/r/20250623-ddrperfm-upstream-v1-0-7dffff168090@foss.st.com The first patch contains a base of binding, which I find sufficient for my needs but perhaps you'll have suggestion for addition or rework as this is mainly inspirate from lpddrX-channel binding. As we can find the same property in the two channel binding maybe this can be shared properties. The second patch, that contains stm32-ddr-pmu binding, aims to provide an example of usage of this ddr-channel bindings. Note the "memory-channel" property which I mainly want to discuss about and gather some feedbacks. For your knowledge, the stm32-ddr-pmu driver (DDRPERFM peripheral) needs the dram type information for its internal working with ddr events. Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com> --- Clément Le Goffic (2): dt-bindings: memory: add jedec,ddr[3-4]-channel binding dt-bindings: perf: stm32: introduce DDRPERFM dt-bindings .../memory-controllers/ddr/jedec,ddr-channel.yaml | 53 +++++++++++++ .../devicetree/bindings/perf/st,stm32-ddr-pmu.yaml | 90 ++++++++++++++++++++++ 2 files changed, 143 insertions(+) --- base-commit: e34a79b96ab9d49ed8b605fee11099cf3efbb428 change-id: 20250626-ddr-bindings-dbe23bcfe299 Best regards, -- Clément Le Goffic <clement.legoffic@foss.st.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH RFC 1/2] dt-bindings: memory: add jedec,ddr[3-4]-channel binding 2025-06-26 19:48 [PATCH RFC 0/2] Introduce ddr[3-4]-channel binding Clément Le Goffic @ 2025-06-26 19:48 ` Clément Le Goffic 2025-07-09 18:27 ` Krzysztof Kozlowski 2025-06-26 19:48 ` [PATCH RFC 2/2] dt-bindings: perf: stm32: introduce DDRPERFM dt-bindings Clément Le Goffic 1 sibling, 1 reply; 6+ messages in thread From: Clément Le Goffic @ 2025-06-26 19:48 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Will Deacon, Mark Rutland, Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue Cc: linux-kernel, devicetree, linux-arm-kernel, linux-perf-users, linux-stm32, Clément Le Goffic Introduce as per jdec,lpddrX-channel binding, jdec,ddr[3-4]-channel binding. Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com> --- .../memory-controllers/ddr/jedec,ddr-channel.yaml | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr-channel.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr-channel.yaml new file mode 100644 index 000000000000..5271b41279e2 --- /dev/null +++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr-channel.yaml @@ -0,0 +1,53 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,ddr-channel.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: DDR channel with chip/rank topology description + +description: + A DDR channel is a logical grouping of memory chips that are connected + to a host system. The main purpose of this node is to describe the + overall DDR topology of the system, including the amount of individual + DDR chips. + +maintainers: + - Clément Le Goffic <clement.legoffic@foss.st.com> + +properties: + compatible: + enum: + - jedec,ddr3-channel + - jedec,ddr4-channel + + io-width: + description: + The number of DQ pins in the channel. If this number is different + from (a multiple of) the io-width of the DDR chip, that means that + multiple instances of that type of chip are wired in parallel on this + channel (with the channel's DQ pins split up between the different + chips, and the CA, CS, etc. pins of the different chips all shorted + together). This means that the total physical memory controlled by a + channel is equal to the sum of the densities of each rank on the + connected DDR chip, times the io-width of the channel divided by + the io-width of the DDR chip. + enum: + - 8 + - 16 + - 32 + - 64 + - 128 + +required: + - compatible + - io-width + +additionalProperties: false + +examples: + - | + ddr_channel: ddr3-channel@0 { + compatible = "jedec,ddr3-channel"; + io-width = <16>; + }; -- 2.43.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH RFC 1/2] dt-bindings: memory: add jedec,ddr[3-4]-channel binding 2025-06-26 19:48 ` [PATCH RFC 1/2] dt-bindings: memory: add jedec,ddr[3-4]-channel binding Clément Le Goffic @ 2025-07-09 18:27 ` Krzysztof Kozlowski 2025-07-10 7:26 ` Clement LE GOFFIC 0 siblings, 1 reply; 6+ messages in thread From: Krzysztof Kozlowski @ 2025-07-09 18:27 UTC (permalink / raw) To: Clément Le Goffic, Rob Herring, Conor Dooley, Will Deacon, Mark Rutland, Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue Cc: linux-kernel, devicetree, linux-arm-kernel, linux-perf-users, linux-stm32 On 26/06/2025 21:48, Clément Le Goffic wrote: > Introduce as per jdec,lpddrX-channel binding, jdec,ddr[3-4]-channel s/jdec/jedec/ > binding. > > Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com> > --- > + > +additionalProperties: false > + > +examples: > + - | > + ddr_channel: ddr3-channel@0 { > + compatible = "jedec,ddr3-channel"; > + io-width = <16>; Missing reg... or not? What was your intention > + }; > Best regards, Krzysztof ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC 1/2] dt-bindings: memory: add jedec,ddr[3-4]-channel binding 2025-07-09 18:27 ` Krzysztof Kozlowski @ 2025-07-10 7:26 ` Clement LE GOFFIC 0 siblings, 0 replies; 6+ messages in thread From: Clement LE GOFFIC @ 2025-07-10 7:26 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Will Deacon, Mark Rutland, Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue Cc: linux-kernel, devicetree, linux-arm-kernel, linux-perf-users, linux-stm32 Hi Krzysztof, On 7/9/25 20:27, Krzysztof Kozlowski wrote: > On 26/06/2025 21:48, Clément Le Goffic wrote: >> Introduce as per jdec,lpddrX-channel binding, jdec,ddr[3-4]-channel > > s/jdec/jedec/ Right thanks > >> binding. >> >> Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com> >> --- > > >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + ddr_channel: ddr3-channel@0 { >> + compatible = "jedec,ddr3-channel"; >> + io-width = <16>; > > Missing reg... or not? What was your intention Indeed no reg. I'll drop the "@0" for the next version. > > >> + }; >> > > > Best regards, > Krzysztof ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH RFC 2/2] dt-bindings: perf: stm32: introduce DDRPERFM dt-bindings 2025-06-26 19:48 [PATCH RFC 0/2] Introduce ddr[3-4]-channel binding Clément Le Goffic 2025-06-26 19:48 ` [PATCH RFC 1/2] dt-bindings: memory: add jedec,ddr[3-4]-channel binding Clément Le Goffic @ 2025-06-26 19:48 ` Clément Le Goffic 2025-06-26 21:19 ` Rob Herring (Arm) 1 sibling, 1 reply; 6+ messages in thread From: Clément Le Goffic @ 2025-06-26 19:48 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Will Deacon, Mark Rutland, Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue Cc: linux-kernel, devicetree, linux-arm-kernel, linux-perf-users, linux-stm32, Clément Le Goffic DDRPERFM is the DDR Performance Monitor embedded in STM32MPU SoC. It allows to monitor DDR events that come from the DDR Controller such as read or write events. Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com> --- .../devicetree/bindings/perf/st,stm32-ddr-pmu.yaml | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml b/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml new file mode 100644 index 000000000000..98775f32475a --- /dev/null +++ b/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml @@ -0,0 +1,90 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/perf/st,stm32-ddr-pmu.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +maintainers: + - Clément Le Goffic <clement.legoffic@foss.st.com> + +title: STMicroelectronics STM32 DDR Performance Monitor (DDRPERFM) + +properties: + compatible: + oneOf: + enum: + - st,stm32mp131-ddr-pmu + - st,stm32mp151-ddr-pmu + const: st,stm32mp251-ddr-pmu + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + resets: + maxItems: 1 + + access-controllers: + minItems: 1 + maxItems: 2 + + memory-channel: + description: | + The memory channel this DDRPERFM is attached to. + $ref: /schemas/types.yaml#/definitions/phandle + +required: + - compatible + - reg + +allOf: + - if: + properties: + compatible: + contains: + enum: + - st,stm32mp131-ddr-pmu + - st,stm32mp151-ddr-pmu + then: + required: + - clocks + - resets + + - if: + properties: + compatible: + contains: + const: st,stm32mp251-ddr-pmu + then: + required: + - access-controllers + - st,dram-type + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/stm32mp1-clks.h> + #include <dt-bindings/reset/stm32mp1-resets.h> + + perf@5a007000 { + compatible = "st,stm32mp151-ddr-pmu"; + reg = <0x5a007000 0x400>; + clocks = <&rcc DDRPERFM>; + resets = <&rcc DDRPERFM_R>; + }; + + - | + ddr_channel: ddr4-channel@0 { + compatible = "jedec,ddr4-channel"; + io-width = <32>; + }; + + perf@48041000 { + compatible = "st,stm32mp251-ddr-pmu"; + reg = <0x48041000 0x400>; + access-controllers = <&rcc 104>; + memory-channel = <&ddr_channel>; + }; -- 2.43.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH RFC 2/2] dt-bindings: perf: stm32: introduce DDRPERFM dt-bindings 2025-06-26 19:48 ` [PATCH RFC 2/2] dt-bindings: perf: stm32: introduce DDRPERFM dt-bindings Clément Le Goffic @ 2025-06-26 21:19 ` Rob Herring (Arm) 0 siblings, 0 replies; 6+ messages in thread From: Rob Herring (Arm) @ 2025-06-26 21:19 UTC (permalink / raw) To: Clément Le Goffic Cc: linux-arm-kernel, Mark Rutland, Maxime Coquelin, Conor Dooley, Krzysztof Kozlowski, Alexandre Torgue, linux-perf-users, devicetree, Will Deacon, Krzysztof Kozlowski, linux-stm32, linux-kernel On Thu, 26 Jun 2025 21:48:35 +0200, Clément Le Goffic wrote: > DDRPERFM is the DDR Performance Monitor embedded in STM32MPU SoC. > It allows to monitor DDR events that come from the DDR Controller > such as read or write events. > > Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com> > --- > .../devicetree/bindings/perf/st,stm32-ddr-pmu.yaml | 90 ++++++++++++++++++++++ > 1 file changed, 90 insertions(+) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml: ignoring, error in schema: properties: compatible: oneOf /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml: properties:compatible:oneOf: {'enum': ['st,stm32mp131-ddr-pmu', 'st,stm32mp151-ddr-pmu'], 'const': 'st,stm32mp251-ddr-pmu'} is not of type 'array' from schema $id: http://json-schema.org/draft-07/schema# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml: properties:compatible:oneOf: {'enum': ['st,stm32mp131-ddr-pmu', 'st,stm32mp151-ddr-pmu'], 'const': 'st,stm32mp251-ddr-pmu'} should not be valid under {'items': {'propertyNames': {'const': 'const'}, 'required': ['const']}} hint: Use 'enum' rather than 'oneOf' + 'const' entries from schema $id: http://devicetree.org/meta-schemas/keywords.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.yaml: properties:compatible:oneOf: {'enum': ['st,stm32mp131-ddr-pmu', 'st,stm32mp151-ddr-pmu'], 'const': 'st,stm32mp251-ddr-pmu'} is not of type 'array' from schema $id: http://devicetree.org/meta-schemas/string-array.yaml# Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.example.dts:44.37-47.11: Warning (unit_address_vs_reg): /example-1/ddr4-channel@0: node has a unit name, but no reg or ranges property Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.example.dtb: /example-0/perf@5a007000: failed to match any schema with compatible: ['st,stm32mp151-ddr-pmu'] Documentation/devicetree/bindings/perf/st,stm32-ddr-pmu.example.dtb: /example-1/perf@48041000: failed to match any schema with compatible: ['st,stm32mp251-ddr-pmu'] doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250626-ddr-bindings-v1-2-cae30933c54c@foss.st.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-07-10 7:47 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-26 19:48 [PATCH RFC 0/2] Introduce ddr[3-4]-channel binding Clément Le Goffic 2025-06-26 19:48 ` [PATCH RFC 1/2] dt-bindings: memory: add jedec,ddr[3-4]-channel binding Clément Le Goffic 2025-07-09 18:27 ` Krzysztof Kozlowski 2025-07-10 7:26 ` Clement LE GOFFIC 2025-06-26 19:48 ` [PATCH RFC 2/2] dt-bindings: perf: stm32: introduce DDRPERFM dt-bindings Clément Le Goffic 2025-06-26 21:19 ` Rob Herring (Arm)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).