* [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
* [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
* 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
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).