Skip to contentSkip to conversation

dt-bindings: Arm CoreSight binding schema conversions

PATCH In review Rob Herring 3 participants 11 messages Jun 3, 2022 – Jun 29, 2022

Subsystems (4)
lore
Share & tools
lore

Rob Herring

author maintainer
#0 lore raw

v2 cover dt-bindings: Arm CoreSight binding schema conversions

This series converts all the CoreSight debug bindings to DT schema format. These bindings are at the top of the list of occurrences of bindings without a schema. For arm64 dts files:

    702 ['arm,coresight-etm4x', 'arm,primecell']
    536 ['arm,coresight-cpu-debug', 'arm,primecell']
    509 ['arm,coresight-dynamic-funnel', 'arm,primecell']
    213 ['arm,coresight-tmc', 'arm,primecell']
    143 ['arm,coresight-dynamic-replicator', 'arm,primecell']
     97 ['arm,coresight-stm', 'arm,primecell']

I'll send a reply to these with the errors in dts files that this causes. I've reviewed them and they all look legit. Xilinx Zynq though has 3 clocks instead of 2.

v2:
- Rename other Coresight bindings to use compatible string for filename
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references

Rob

Rob Herring (3):
dt-bindings: arm: Rename Coresight filenames to match compatible
dt-bindings: arm: Convert CoreSight bindings to DT schema
dt-bindings: arm: Convert CoreSight CPU debug to DT schema

 .../bindings/arm/arm,coresight-catu.yaml      | 101 +++++
 .../bindings/arm/arm,coresight-cpu-debug.yaml |  81 ++++
 ...esight-cti.yaml => arm,coresight-cti.yaml} |   5 +-
 .../arm/arm,coresight-dynamic-funnel.yaml     | 126 ++++++
 .../arm/arm,coresight-dynamic-replicator.yaml | 126 ++++++
 .../bindings/arm/arm,coresight-etb10.yaml     |  92 ++++
 .../bindings/arm/arm,coresight-etm.yaml       | 156 +++++++
 .../arm/arm,coresight-static-funnel.yaml      |  89 ++++
 .../arm/arm,coresight-static-replicator.yaml  |  90 ++++
 .../bindings/arm/arm,coresight-stm.yaml       | 101 +++++
 .../bindings/arm/arm,coresight-tmc.yaml       | 131 ++++++
 .../bindings/arm/arm,coresight-tpiu.yaml      |  91 ++++
 ...yaml => arm,embedded-trace-extension.yaml} |   3 +-
 ...e.yaml => arm,trace-buffer-extension.yaml} |   2 +-
 .../bindings/arm/coresight-cpu-debug.txt      |  49 ---
 .../devicetree/bindings/arm/coresight.txt     | 402 ------------------
 Documentation/trace/coresight/coresight.rst   |   2 +-
 MAINTAINERS                                   |   8 +-
 18 files changed, 1192 insertions(+), 463 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
 rename Documentation/devicetree/bindings/arm/{coresight-cti.yaml => arm,coresight-cti.yaml} (98%)
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
 rename Documentation/devicetree/bindings/arm/{ete.yaml => arm,embedded-trace-extension.yaml} (95%)
 rename Documentation/devicetree/bindings/arm/{trbe.yaml => arm,trace-buffer-extension.yaml} (94%)
 delete mode 100644 Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
 delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt

--
2.34.1

author maintainer
#1 lore raw

PATCH v2 1/3 dt-bindings: arm: Rename Coresight filenames to match compatible

Use the compatible strings for filenames as that is the preferred naming convention for DT bindings.

---
 .../arm/{coresight-cti.yaml => arm,coresight-cti.yaml}      | 2 +-
 .../arm/{ete.yaml => arm,embedded-trace-extension.yaml}     | 2 +-
 .../arm/{trbe.yaml => arm,trace-buffer-extension.yaml}      | 2 +-
 MAINTAINERS                                                 | 6 +++---
 4 files changed, 6 insertions(+), 6 deletions(-)
 rename Documentation/devicetree/bindings/arm/{coresight-cti.yaml => arm,coresight-cti.yaml} (99%)
 rename Documentation/devicetree/bindings/arm/{ete.yaml => arm,embedded-trace-extension.yaml} (96%)
 rename Documentation/devicetree/bindings/arm/{trbe.yaml => arm,trace-buffer-extension.yaml} (94%)
Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml renamed from Documentation/devicetree/bindings/arm/coresight-cti.yaml +1 -1
similarity index 99%
rename from Documentation/devicetree/bindings/arm/coresight-cti.yaml
rename to Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml
index 21e3515491f4..d32d214ed64e 100644
@@ -2,7 +2,7 @@
 # Copyright 2019 Linaro Ltd.
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/coresight-cti.yaml#
+$id: http://devicetree.org/schemas/arm/arm,coresight-cti.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: ARM Coresight Cross Trigger Interface (CTI) device.
Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml renamed from Documentation/devicetree/bindings/arm/ete.yaml +1 -1
similarity index 96%
rename from Documentation/devicetree/bindings/arm/ete.yaml
rename to Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
index 7f9b2d1e1147..2415beeb12ea 100644
@@ -2,7 +2,7 @@
 # Copyright 2021, Arm Ltd
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/arm/ete.yaml#"
+$id: "http://devicetree.org/schemas/arm/arm,embedded-trace-extension.yaml#"
 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
 
 title: ARM Embedded Trace Extensions
Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml renamed from Documentation/devicetree/bindings/arm/trbe.yaml +1 -1
similarity index 94%
rename from Documentation/devicetree/bindings/arm/trbe.yaml
rename to Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
index 4402d7bfd1fc..b1322658063a 100644
@@ -2,7 +2,7 @@
 # Copyright 2021, Arm Ltd
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/arm/trbe.yaml#"
+$id: "http://devicetree.org/schemas/arm/arm,trace-buffer-extension.yaml#"
 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
 
 title: ARM Trace Buffer Extensions
MAINTAINERS +3 -3
index 7dff84d95e5f..abfdc62abf98 100644
@@ -1972,10 +1972,10 @@ S:	Maintained
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
 F:	Documentation/ABI/testing/sysfs-bus-coresight-devices-*
 F:	Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
-F:	Documentation/devicetree/bindings/arm/coresight-cti.yaml
+F:	Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml
 F:	Documentation/devicetree/bindings/arm/coresight.txt
-F:	Documentation/devicetree/bindings/arm/ete.yaml
-F:	Documentation/devicetree/bindings/arm/trbe.yaml
+F:	Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
+F:	Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
 F:	Documentation/trace/coresight/*
 F:	drivers/hwtracing/coresight/*
 F:	include/dt-bindings/arm/coresight-cti-dt.h
Signature · 1 line
2.34.1
author maintainer
#2 lore raw

PATCH v2 2/3 dt-bindings: arm: Convert CoreSight bindings to DT schema

In reply to Rob Herring

Each CoreSight component has slightly different requirements and nothing applies to every component, so each CoreSight component has its own schema document.

--
v2:
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references
- Fix double blank line

---
 .../bindings/arm/arm,coresight-catu.yaml      | 101 +++++
 .../bindings/arm/arm,coresight-cti.yaml       |   3 +-
 .../arm/arm,coresight-dynamic-funnel.yaml     | 126 ++++++
 .../arm/arm,coresight-dynamic-replicator.yaml | 126 ++++++
 .../bindings/arm/arm,coresight-etb10.yaml     |  92 ++++
 .../bindings/arm/arm,coresight-etm.yaml       | 156 +++++++
 .../arm/arm,coresight-static-funnel.yaml      |  89 ++++
 .../arm/arm,coresight-static-replicator.yaml  |  90 ++++
 .../bindings/arm/arm,coresight-stm.yaml       | 101 +++++
 .../bindings/arm/arm,coresight-tmc.yaml       | 131 ++++++
 .../bindings/arm/arm,coresight-tpiu.yaml      |  91 ++++
 .../arm/arm,embedded-trace-extension.yaml     |   1 -
 .../devicetree/bindings/arm/coresight.txt     | 402 ------------------
 Documentation/trace/coresight/coresight.rst   |   2 +-
 MAINTAINERS                                   |   3 +-
 15 files changed, 1106 insertions(+), 408 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
 delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt
Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml new file +101 -0
new file mode 100644
index 000000000000..d783d9276124
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-catu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm Coresight Address Translation Unit (CATU)
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight components are compliant with the ARM CoreSight architecture
+  specification and can be connected in various topologies to suit a particular
+  SoCs tracing needs. These trace components can generally be classified as
+  sinks, links and sources. Trace data produced by one or more sources flows
+  through the intermediate links connecting the source to the currently selected
+  sink.
+
+  The CoreSight Address Translation Unit (CATU) translates addresses between an
+  AXI master and system memory. The CATU is normally used along with the TMC to
+  implement scattering of virtual trace buffers in physical memory. The CATU
+  translates contiguous Virtual Addresses (VAs) from an AXI master into
+  non-contiguous Physical Addresses (PAs) that are intended for system memory.
+
+# Need a custom select here or 'arm,primecell' will match on lots of nodes
+select:
+  properties:
+    compatible:
+      contains:
+        const: arm,coresight-catu
+  required:
+    - compatible
+
+allOf:
+  - $ref: /schemas/arm/primecell.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: arm,coresight-catu
+      - const: arm,primecell
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: apb_pclk
+      - const: atclk
+
+  interrupts:
+    maxItems: 1
+    description: Address translation error interrupt
+
+  in-ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    additionalProperties: false
+
+    properties:
+      port:
+        description: AXI Slave connected to another Coresight component
+        $ref: /schemas/graph.yaml#/properties/port
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - in-ports
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    catu@207e0000 {
+        compatible = "arm,coresight-catu", "arm,primecell";
+        reg = <0x207e0000 0x1000>;
+
+        clocks = <&oscclk6a>;
+        clock-names = "apb_pclk";
+
+        interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+        in-ports {
+            port {
+                catu_in_port: endpoint {
+                    remote-endpoint = <&etr_out_port>;
+                };
+            };
+        };
+    };
+...
Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml +1 -2
index d32d214ed64e..72ffe4d1e948 100644
@@ -12,8 +12,7 @@ description: |
   to one or more CoreSight components and/or a CPU, with CTIs interconnected in
   a star topology via the Cross Trigger Matrix (CTM), which is not programmable.
   The ECT components are not part of the trace generation data path and are thus
-  not part of the CoreSight graph described in the general CoreSight bindings
-  file coresight.txt.
+  not part of the CoreSight graph.
 
   The CTI component properties define the connections between the individual
   CTI and the components it is directly connected to, consisting of input and
Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml new file +126 -0

126 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml new file +126 -0

126 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml new file +92 -0

92 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +156 -0

156 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml new file +89 -0

89 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml new file +90 -0

90 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml new file +101 -0

101 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml new file +131 -0

131 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml new file +91 -0

91 lines not on this page · raw message

Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml +0 -1
index 2415beeb12ea..5f07fb166c56 100644
@@ -20,7 +20,6 @@ description: |
   Arm Trace Buffer Extension (TRBE)). Since the ETE can be connected to
   legacy CoreSight components, a node must be listed per instance, along
   with any optional connection graph as per the coresight bindings.
-  See bindings/arm/coresight.txt.
 
 properties:
   $nodename:
Documentation/devicetree/bindings/arm/coresight.txt deleted +0 -402

402 lines not on this page · raw message

Documentation/trace/coresight/coresight.rst +1 -1
index a15571d96cc8..529b7c80e6f3 100644
@@ -130,7 +130,7 @@ Misc:
 Device Tree Bindings
 --------------------
 
-See Documentation/devicetree/bindings/arm/coresight.txt for details.
+See Documentation/devicetree/bindings/arm/arm,coresight-*.yaml for details.
 
 As of this writing drivers for ITM, STMs and CTIs are not provided but are
 expected to be added as the solution matures.
MAINTAINERS +1 -2
index abfdc62abf98..ac2e7163ab14 100644
@@ -1972,8 +1972,7 @@ S:	Maintained
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
 F:	Documentation/ABI/testing/sysfs-bus-coresight-devices-*
 F:	Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
-F:	Documentation/devicetree/bindings/arm/arm,coresight-cti.yaml
-F:	Documentation/devicetree/bindings/arm/coresight.txt
+F:	Documentation/devicetree/bindings/arm/arm,coresight-*.yaml
 F:	Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
 F:	Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
 F:	Documentation/trace/coresight/*
Signature · 1 line
2.34.1
maintainer
#3 lore raw

Re: [PATCH v2 2/3] dt-bindings: arm: Convert CoreSight bindings to DT schema

Hi Rob

A big Thank You for the effort ! A minor comment below.

Quoted 41 lines · Rob Herring

Each CoreSight component has slightly different requirements and nothing applies to every component, so each CoreSight component has its own schema document.

--
v2:
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references
- Fix double blank line

---
  .../bindings/arm/arm,coresight-catu.yaml      | 101 +++++
  .../bindings/arm/arm,coresight-cti.yaml       |   3 +-
  .../arm/arm,coresight-dynamic-funnel.yaml     | 126 ++++++
  .../arm/arm,coresight-dynamic-replicator.yaml | 126 ++++++
  .../bindings/arm/arm,coresight-etb10.yaml     |  92 ++++
  .../bindings/arm/arm,coresight-etm.yaml       | 156 +++++++
  .../arm/arm,coresight-static-funnel.yaml      |  89 ++++
  .../arm/arm,coresight-static-replicator.yaml  |  90 ++++
  .../bindings/arm/arm,coresight-stm.yaml       | 101 +++++
  .../bindings/arm/arm,coresight-tmc.yaml       | 131 ++++++
  .../bindings/arm/arm,coresight-tpiu.yaml      |  91 ++++
  .../arm/arm,embedded-trace-extension.yaml     |   1 -
  .../devicetree/bindings/arm/coresight.txt     | 402 ------------------
  Documentation/trace/coresight/coresight.rst   |   2 +-
  MAINTAINERS                                   |   3 +-
  15 files changed, 1106 insertions(+), 408 deletions(-)

create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt

...

Quoted 60 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +54 -0
new file mode 100644
index 000000000000..e0377ce48537
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-etm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight Embedded Trace MacroCell
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight components are compliant with the ARM CoreSight architecture
+  specification and can be connected in various topologies to suit a particular
+  SoCs tracing needs. These trace components can generally be classified as
+  sinks, links and sources. Trace data produced by one or more sources flows
+  through the intermediate links connecting the source to the currently selected
+  sink.
+
+  The Embedded Trace Macrocell (ETM) is a real-time trace module providing
+  instruction and data tracing of a processor.
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - arm,coresight-etm3x
+          - arm,coresight-etm4x
+          - arm,coresight-etm4x-sysreg
+  required:
+    - compatible
+
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: arm,coresight-etm4x-sysreg
+    then:
+      $ref: /schemas/arm/primecell.yaml#
+      required:
+        - reg
+
+properties:
+  compatible:
+    oneOf:
+      - description:
+          Embedded Trace Macrocell with memory mapped access.
+        items:

Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml line 64

Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +10 -0
+          - enum:
+              - arm,coresight-etm3x
+              - arm,coresight-etm4x
+          - const: arm,primecell
+      - description:
+          Embedded Trace Macrocell (version 4.x), with system register access only
+        const: arm,coresight-etm4x-sysreg
+
+  reg:
+    maxItems: 1

The register field is mandatory for everything, except arm,coresight-etm4x-sysreg. Is there a way to enforce that selectively for the others ?

Quoted 102 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +91 -0
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: apb_pclk
+      - const: atclk
+
+  arm,coresight-loses-context-with-cpu:
+    type: boolean
+    description:
+      Indicates that the hardware will lose register context on CPU power down
+      (e.g. CPUIdle). An example of where this may be needed are systems which
+      contain a coresight component and CPU in the same power domain. When the
+      CPU powers down the coresight component also powers down and loses its
+      context.
+
+  arm,cp14:
+    type: boolean
+    description:
+      Must be present if the system accesses ETM/PTM management registers via
+      co-processor 14.
+
+  qcom,skip-power-up:
+    type: boolean
+    description:
+      Indicates that an implementation can skip powering up the trace unit.
+      TRCPDCR.PU does not have to be set on Qualcomm Technologies Inc. systems
+      since ETMs are in the same power domain as their CPU cores. This property
+      is required to identify such systems with hardware errata where the CPU
+      watchdog counter is stopped when TRCPDCR.PU is set.
+
+  cpu:
+    description:
+      phandle to the cpu this ETM is bound to.
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  out-ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    additionalProperties: false
+
+    properties:
+      port:
+        description: Output connection from the ETM to CoreSight Trace bus.
+        $ref: /schemas/graph.yaml#/properties/port > +
+required:
+  - compatible
+  - clocks
+  - clock-names
+  - cpu
+  - out-ports
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    ptm@2201c000 {
+        compatible = "arm,coresight-etm3x", "arm,primecell";
+        reg = <0x2201c000 0x1000>;
+
+        cpu = <&cpu0>;
+        clocks = <&oscclk6a>;
+        clock-names = "apb_pclk";
+        out-ports {
+            port {
+                ptm0_out_port: endpoint {
+                    remote-endpoint = <&funnel_in_port0>;
+                };
+            };
+        };
+    };
+
+    ptm@2201d000 {
+        compatible = "arm,coresight-etm3x", "arm,primecell";
+        reg = <0x2201d000 0x1000>;
+
+        cpu = <&cpu1>;
+        clocks = <&oscclk6a>;
+        clock-names = "apb_pclk";
+        out-ports {
+            port {
+                ptm1_out_port: endpoint {
+                    remote-endpoint = <&funnel_in_port1>;
+                };
+            };
+        };
+    };
+...
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml new file +5 -0
new file mode 100644
index 000000000000..b9da30ab9ccd
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-static-funnel.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#

...

Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml line 59

Quoted 12 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml new file +12 -0
+  - compatible
+  - in-ports
+  - out-ports
+
+additionalProperties: false
+
+examples:
+  - |
+    funnel {
+        /* non-configurable replicators don't show up on the
+        * AMBA bus.  As such no need to add "arm,primecell".
+        */

minor nit. Comment styling.

Quoted 1 line

+ compatible = "arm,coresight-static-funnel";

...

Quoted 13 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml new file +7 -0
new file mode 100644
index 000000000000..66ee97370fb2
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-static-replicator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight Static Trace Bus Replicator

...

Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml line 59

Quoted 8 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml new file +8 -0
+additionalProperties: false
+
+examples:
+  - |
+    replicator {
+        /* non-configurable replicators don't show up on the
+        * AMBA bus.  As such no need to add "arm,primecell".
+        */

same as above.

Quoted 74 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml new file +31 -0
+        compatible = "arm,coresight-static-replicator";
+
+        out-ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            /* replicator output ports */
+            port@0 {
+                reg = <0>;
+                replicator_out_port0: endpoint {
+                    remote-endpoint = <&etb_in_port>;
+                };
+            };
+
+            port@1 {
+                reg = <1>;
+                replicator_out_port1: endpoint {
+                    remote-endpoint = <&tpiu_in_port>;
+                };
+            };
+        };
+
+        in-ports {
+            port {
+                replicator_in_port0: endpoint {
+                    remote-endpoint = <&funnel_out_port0>;
+                };
+            };
+        };
+    };
+...
Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml new file +37 -0
new file mode 100644
index 000000000000..905008faa012
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-stm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight System Trace MacroCell
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight components are compliant with the ARM CoreSight architecture
+  specification and can be connected in various topologies to suit a particular
+  SoCs tracing needs. These trace components can generally be classified as
+  sinks, links and sources. Trace data produced by one or more sources flows
+  through the intermediate links connecting the source to the currently selected
+  sink.
+
+  The STM is a trace source that is integrated into a CoreSight system, designed
+  primarily for high-bandwidth trace of instrumentation embedded into software.
+  This instrumentation is made up of memory-mapped writes to the STM Advanced
+  eXtensible Interface (AXI) slave, which carry information about the behavior
+  of the software.
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: arm,coresight-stm
+  required:
+    - compatible
+
+allOf:

Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml line 47

Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml new file +10 -0
+  - $ref: /schemas/arm/primecell.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: arm,coresight-stm
+      - const: arm,primecell
+
+  reg:
+    maxItems: 2

stm-stimulus-base is mandatory for stm. So I believe, we should add

minItems: 2
above ?

Rest all looks good to me.

Suzuki

author maintainer
#4 lore raw

Re: [PATCH v2 2/3] dt-bindings: arm: Convert CoreSight bindings to DT schema

Quoted 94 lines · Suzuki K Poulose

Hi Rob

A big Thank You for the effort ! A minor comment below.

Quoted 41 lines · Rob Herring

Each CoreSight component has slightly different requirements and nothing applies to every component, so each CoreSight component has its own schema document.

--
v2:
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references
- Fix double blank line

---
  .../bindings/arm/arm,coresight-catu.yaml      | 101 +++++
  .../bindings/arm/arm,coresight-cti.yaml       |   3 +-
  .../arm/arm,coresight-dynamic-funnel.yaml     | 126 ++++++
  .../arm/arm,coresight-dynamic-replicator.yaml | 126 ++++++
  .../bindings/arm/arm,coresight-etb10.yaml     |  92 ++++
  .../bindings/arm/arm,coresight-etm.yaml       | 156 +++++++
  .../arm/arm,coresight-static-funnel.yaml      |  89 ++++
  .../arm/arm,coresight-static-replicator.yaml  |  90 ++++
  .../bindings/arm/arm,coresight-stm.yaml       | 101 +++++
  .../bindings/arm/arm,coresight-tmc.yaml       | 131 ++++++
  .../bindings/arm/arm,coresight-tpiu.yaml      |  91 ++++
  .../arm/arm,embedded-trace-extension.yaml     |   1 -
  .../devicetree/bindings/arm/coresight.txt     | 402 ------------------
  Documentation/trace/coresight/coresight.rst   |   2 +-
  MAINTAINERS                                   |   3 +-
  15 files changed, 1106 insertions(+), 408 deletions(-)

create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt

...

Quoted 45 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +39 -0
new file mode 100644
index 000000000000..e0377ce48537
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-etm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight Embedded Trace MacroCell
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight components are compliant with the ARM CoreSight architecture
+  specification and can be connected in various topologies to suit a particular
+  SoCs tracing needs. These trace components can generally be classified as
+  sinks, links and sources. Trace data produced by one or more sources flows
+  through the intermediate links connecting the source to the currently selected
+  sink.
+
+  The Embedded Trace Macrocell (ETM) is a real-time trace module providing
+  instruction and data tracing of a processor.
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - arm,coresight-etm3x
+          - arm,coresight-etm4x
+          - arm,coresight-etm4x-sysreg
+  required:
+    - compatible
+
+allOf:
+  - if:
+      not:
Quoted 8 lines

Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml line 47

Quoted 8 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +8 -0
+        properties:
+          compatible:
+            contains:
+              const: arm,coresight-etm4x-sysreg
+    then:
+      $ref: /schemas/arm/primecell.yaml#
+      required:
+        - reg

^^^^

Quoted 13 lines
Quoted 13 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +13 -0
+
+properties:
+  compatible:
+    oneOf:
+      - description:
+          Embedded Trace Macrocell with memory mapped access.
+        items:
+          - enum:
+              - arm,coresight-etm3x
+              - arm,coresight-etm4x
+          - const: arm,primecell
+      - description:
+          Embedded Trace Macrocell (version 4.x), with system register access only
Quoted 8 lines

Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml line 64

Quoted 4 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +4 -0
+        const: arm,coresight-etm4x-sysreg
+
+  reg:
+    maxItems: 1

The register field is mandatory for everything, except arm,coresight-etm4x-sysreg. Is there a way to enforce that selectively for the others ?

Yes, that's what it is doing up above that I flagged.

Quoted 237 lines
Quoted 101 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +90 -0
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: apb_pclk
+      - const: atclk
+
+  arm,coresight-loses-context-with-cpu:
+    type: boolean
+    description:
+      Indicates that the hardware will lose register context on CPU power down
+      (e.g. CPUIdle). An example of where this may be needed are systems which
+      contain a coresight component and CPU in the same power domain. When the
+      CPU powers down the coresight component also powers down and loses its
+      context.
+
+  arm,cp14:
+    type: boolean
+    description:
+      Must be present if the system accesses ETM/PTM management registers via
+      co-processor 14.
+
+  qcom,skip-power-up:
+    type: boolean
+    description:
+      Indicates that an implementation can skip powering up the trace unit.
+      TRCPDCR.PU does not have to be set on Qualcomm Technologies Inc. systems
+      since ETMs are in the same power domain as their CPU cores. This property
+      is required to identify such systems with hardware errata where the CPU
+      watchdog counter is stopped when TRCPDCR.PU is set.
+
+  cpu:
+    description:
+      phandle to the cpu this ETM is bound to.
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  out-ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    additionalProperties: false
+
+    properties:
+      port:
+        description: Output connection from the ETM to CoreSight Trace bus.
+        $ref: /schemas/graph.yaml#/properties/port > +
+required:
+  - compatible
+  - clocks
+  - clock-names
+  - cpu
+  - out-ports
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    ptm@2201c000 {
+        compatible = "arm,coresight-etm3x", "arm,primecell";
+        reg = <0x2201c000 0x1000>;
+
+        cpu = <&cpu0>;
+        clocks = <&oscclk6a>;
+        clock-names = "apb_pclk";
+        out-ports {
+            port {
+                ptm0_out_port: endpoint {
+                    remote-endpoint = <&funnel_in_port0>;
+                };
+            };
+        };
+    };
+
+    ptm@2201d000 {
+        compatible = "arm,coresight-etm3x", "arm,primecell";
+        reg = <0x2201d000 0x1000>;
+
+        cpu = <&cpu1>;
+        clocks = <&oscclk6a>;
+        clock-names = "apb_pclk";
+        out-ports {
+            port {
+                ptm1_out_port: endpoint {
+                    remote-endpoint = <&funnel_in_port1>;
+                };
+            };
+        };
+    };
+...
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml new file +5 -0
new file mode 100644
index 000000000000..b9da30ab9ccd
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-static-funnel.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#

...

Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml line 59

Quoted 12 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml new file +12 -0
+  - compatible
+  - in-ports
+  - out-ports
+
+additionalProperties: false
+
+examples:
+  - |
+    funnel {
+        /* non-configurable replicators don't show up on the
+        * AMBA bus.  As such no need to add "arm,primecell".
+        */

minor nit. Comment styling.

Quoted 1 line

+ compatible = "arm,coresight-static-funnel";

...

Quoted 13 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml new file +7 -0
new file mode 100644
index 000000000000..66ee97370fb2
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-static-replicator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight Static Trace Bus Replicator

...

Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml line 59

Quoted 8 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml new file +8 -0
+additionalProperties: false
+
+examples:
+  - |
+    replicator {
+        /* non-configurable replicators don't show up on the
+        * AMBA bus.  As such no need to add "arm,primecell".
+        */

same as above.

Quoted 74 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml new file +31 -0
+        compatible = "arm,coresight-static-replicator";
+
+        out-ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            /* replicator output ports */
+            port@0 {
+                reg = <0>;
+                replicator_out_port0: endpoint {
+                    remote-endpoint = <&etb_in_port>;
+                };
+            };
+
+            port@1 {
+                reg = <1>;
+                replicator_out_port1: endpoint {
+                    remote-endpoint = <&tpiu_in_port>;
+                };
+            };
+        };
+
+        in-ports {
+            port {
+                replicator_in_port0: endpoint {
+                    remote-endpoint = <&funnel_out_port0>;
+                };
+            };
+        };
+    };
+...
Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml new file +37 -0
new file mode 100644
index 000000000000..905008faa012
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-stm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight System Trace MacroCell
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight components are compliant with the ARM CoreSight architecture
+  specification and can be connected in various topologies to suit a particular
+  SoCs tracing needs. These trace components can generally be classified as
+  sinks, links and sources. Trace data produced by one or more sources flows
+  through the intermediate links connecting the source to the currently selected
+  sink.
+
+  The STM is a trace source that is integrated into a CoreSight system, designed
+  primarily for high-bandwidth trace of instrumentation embedded into software.
+  This instrumentation is made up of memory-mapped writes to the STM Advanced
+  eXtensible Interface (AXI) slave, which carry information about the behavior
+  of the software.
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: arm,coresight-stm
+  required:
+    - compatible
+
+allOf:

Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml line 47

Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml new file +10 -0
+  - $ref: /schemas/arm/primecell.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: arm,coresight-stm
+      - const: arm,primecell
+
+  reg:
+    maxItems: 2

stm-stimulus-base is mandatory for stm. So I believe, we should add

Quoted 2 lines

minItems: 2
above ?

That's the default if not explicit.

Rob

maintainer Reviewed-by
#5 lore raw

Re: [PATCH v2 2/3] dt-bindings: arm: Convert CoreSight bindings to DT schema

Quoted 129 lines · Rob Herring
Quoted 94 lines · Suzuki K Poulose

Hi Rob

A big Thank You for the effort ! A minor comment below.

Quoted 41 lines · Rob Herring

Each CoreSight component has slightly different requirements and nothing applies to every component, so each CoreSight component has its own schema document.

--
v2:
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references
- Fix double blank line

---
   .../bindings/arm/arm,coresight-catu.yaml      | 101 +++++
   .../bindings/arm/arm,coresight-cti.yaml       |   3 +-
   .../arm/arm,coresight-dynamic-funnel.yaml     | 126 ++++++
   .../arm/arm,coresight-dynamic-replicator.yaml | 126 ++++++
   .../bindings/arm/arm,coresight-etb10.yaml     |  92 ++++
   .../bindings/arm/arm,coresight-etm.yaml       | 156 +++++++
   .../arm/arm,coresight-static-funnel.yaml      |  89 ++++
   .../arm/arm,coresight-static-replicator.yaml  |  90 ++++
   .../bindings/arm/arm,coresight-stm.yaml       | 101 +++++
   .../bindings/arm/arm,coresight-tmc.yaml       | 131 ++++++
   .../bindings/arm/arm,coresight-tpiu.yaml      |  91 ++++
   .../arm/arm,embedded-trace-extension.yaml     |   1 -
   .../devicetree/bindings/arm/coresight.txt     | 402 ------------------
   Documentation/trace/coresight/coresight.rst   |   2 +-
   MAINTAINERS                                   |   3 +-
   15 files changed, 1106 insertions(+), 408 deletions(-)

create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt

...

Quoted 45 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +39 -0
new file mode 100644
index 000000000000..e0377ce48537
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-etm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight Embedded Trace MacroCell
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight components are compliant with the ARM CoreSight architecture
+  specification and can be connected in various topologies to suit a particular
+  SoCs tracing needs. These trace components can generally be classified as
+  sinks, links and sources. Trace data produced by one or more sources flows
+  through the intermediate links connecting the source to the currently selected
+  sink.
+
+  The Embedded Trace Macrocell (ETM) is a real-time trace module providing
+  instruction and data tracing of a processor.
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - arm,coresight-etm3x
+          - arm,coresight-etm4x
+          - arm,coresight-etm4x-sysreg
+  required:
+    - compatible
+
+allOf:
+  - if:
+      not:
Quoted 8 lines

Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml line 47

Quoted 8 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +8 -0
+        properties:
+          compatible:
+            contains:
+              const: arm,coresight-etm4x-sysreg
+    then:
+      $ref: /schemas/arm/primecell.yaml#
+      required:
+        - reg

^^^^

Quoted 13 lines
Quoted 13 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +13 -0
+
+properties:
+  compatible:
+    oneOf:
+      - description:
+          Embedded Trace Macrocell with memory mapped access.
+        items:
+          - enum:
+              - arm,coresight-etm3x
+              - arm,coresight-etm4x
+          - const: arm,primecell
+      - description:
+          Embedded Trace Macrocell (version 4.x), with system register access only
Quoted 8 lines

Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml line 64

Quoted 4 lines
Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml new file +4 -0
+        const: arm,coresight-etm4x-sysreg
+
+  reg:
+    maxItems: 1

The register field is mandatory for everything, except arm,coresight-etm4x-sysreg. Is there a way to enforce that selectively for the others ?

Quoted 2 lines

Yes, that's what it is doing up above that I flagged.

Thanks for the claritification.

...

Quoted 56 lines
Quoted 56 lines
Quoted 43 lines
Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml new file +37 -0
new file mode 100644
index 000000000000..905008faa012
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-stm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm CoreSight System Trace MacroCell
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight components are compliant with the ARM CoreSight architecture
+  specification and can be connected in various topologies to suit a particular
+  SoCs tracing needs. These trace components can generally be classified as
+  sinks, links and sources. Trace data produced by one or more sources flows
+  through the intermediate links connecting the source to the currently selected
+  sink.
+
+  The STM is a trace source that is integrated into a CoreSight system, designed
+  primarily for high-bandwidth trace of instrumentation embedded into software.
+  This instrumentation is made up of memory-mapped writes to the STM Advanced
+  eXtensible Interface (AXI) slave, which carry information about the behavior
+  of the software.
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: arm,coresight-stm
+  required:
+    - compatible
+
+allOf:

Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml line 47

Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml new file +10 -0
+  - $ref: /schemas/arm/primecell.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: arm,coresight-stm
+      - const: arm,primecell
+
+  reg:
+    maxItems: 2

stm-stimulus-base is mandatory for stm. So I believe, we should add

Quoted 4 lines
Quoted 2 lines

minItems: 2
above ?

That's the default if not explicit.

Ok. So, with the above explanation, ( with gratitude )

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

author maintainer
#6 lore raw

PATCH v2 3/3 dt-bindings: arm: Convert CoreSight CPU debug to DT schema

In reply to Rob Herring

Convert the CoreSight CPU debug binding to DT schema format.

---
v2:
- Update MAINTAINERS entry

---
 .../bindings/arm/arm,coresight-cpu-debug.yaml | 81 +++++++++++++++++++
 .../bindings/arm/coresight-cpu-debug.txt      | 49 -----------
 MAINTAINERS                                   |  1 -
 3 files changed, 81 insertions(+), 50 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
 delete mode 100644 Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml new file +81 -0
new file mode 100644
index 000000000000..0a6bc03ebe00
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,coresight-cpu-debug.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: CoreSight CPU Debug Component
+
+maintainers:
+  - Mathieu Poirier <[email protected]>
+  - Mike Leach <[email protected]>
+  - Leo Yan <[email protected]>
+  - Suzuki K Poulose <[email protected]>
+
+description: |
+  CoreSight CPU debug component are compliant with the ARMv8 architecture
+  reference manual (ARM DDI 0487A.k) Chapter 'Part H: External debug'. The
+  external debug module is mainly used for two modes: self-hosted debug and
+  external debug, and it can be accessed from mmio region from Coresight and
+  eventually the debug module connects with CPU for debugging. And the debug
+  module provides sample-based profiling extension, which can be used to sample
+  CPU program counter, secure state and exception level, etc; usually every CPU
+  has one dedicated debug module to be connected.
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: arm,coresight-cpu-debug
+  required:
+    - compatible
+
+allOf:
+  - $ref: /schemas/arm/primecell.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: arm,coresight-cpu-debug
+      - const: arm,primecell
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    maxItems: 1
+
+  cpu:
+    description:
+      A phandle to the cpu this debug component is bound to.
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  power-domains:
+    maxItems: 1
+    description:
+      A phandle to the debug power domain if the debug logic has its own
+      dedicated power domain. CPU idle states may also need to be separately
+      constrained to keep CPU cores powered.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - cpu
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    debug@f6590000 {
+        compatible = "arm,coresight-cpu-debug", "arm,primecell";
+        reg = <0xf6590000 0x1000>;
+        clocks = <&sys_ctrl 1>;
+        clock-names = "apb_pclk";
+        cpu = <&cpu0>;
+    };
+...
Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt deleted +0 -49

49 lines not on this page · raw message

MAINTAINERS +0 -1
index ac2e7163ab14..59042ecb3cbc 100644
@@ -1971,7 +1971,6 @@ L:	[email protected] (moderated for non-subscribers)
 S:	Maintained
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
 F:	Documentation/ABI/testing/sysfs-bus-coresight-devices-*
-F:	Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
 F:	Documentation/devicetree/bindings/arm/arm,coresight-*.yaml
 F:	Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
 F:	Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
Signature · 1 line
2.34.1
maintainer Reviewed-by on v2 3/3
#7 lore raw

Re: [PATCH v2 3/3] dt-bindings: arm: Convert CoreSight CPU debug to DT schema

Quoted 5 lines · Rob Herring

Convert the CoreSight CPU debug binding to DT schema format.

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Reviewed-by on the v2 series
#8 lore raw
In reply to Rob Herring

Hi Rob,

Quoted 15 lines · Rob Herring

This series converts all the CoreSight debug bindings to DT schema format. These bindings are at the top of the list of occurrences of bindings without a schema. For arm64 dts files:

    702 ['arm,coresight-etm4x', 'arm,primecell']
    536 ['arm,coresight-cpu-debug', 'arm,primecell']
    509 ['arm,coresight-dynamic-funnel', 'arm,primecell']
    213 ['arm,coresight-tmc', 'arm,primecell']
    143 ['arm,coresight-dynamic-replicator', 'arm,primecell']
     97 ['arm,coresight-stm', 'arm,primecell']

I'll send a reply to these with the errors in dts files that this causes. I've reviewed them and they all look legit. Xilinx Zynq though has 3 clocks instead of 2.

Quoted 6 lines

v2:
- Rename other Coresight bindings to use compatible string for filename
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references

What a massive undertaking... I have looked scrupulously and everything adds up. Let me know if you were looking for me to pick this up. Otherwise:

Thanks,
Mathieu

Quoted 46 lines

Rob

Rob Herring (3):
dt-bindings: arm: Rename Coresight filenames to match compatible
dt-bindings: arm: Convert CoreSight bindings to DT schema
dt-bindings: arm: Convert CoreSight CPU debug to DT schema

 .../bindings/arm/arm,coresight-catu.yaml      | 101 +++++
 .../bindings/arm/arm,coresight-cpu-debug.yaml |  81 ++++
 ...esight-cti.yaml => arm,coresight-cti.yaml} |   5 +-
 .../arm/arm,coresight-dynamic-funnel.yaml     | 126 ++++++
 .../arm/arm,coresight-dynamic-replicator.yaml | 126 ++++++
 .../bindings/arm/arm,coresight-etb10.yaml     |  92 ++++
 .../bindings/arm/arm,coresight-etm.yaml       | 156 +++++++
 .../arm/arm,coresight-static-funnel.yaml      |  89 ++++
 .../arm/arm,coresight-static-replicator.yaml  |  90 ++++
 .../bindings/arm/arm,coresight-stm.yaml       | 101 +++++
 .../bindings/arm/arm,coresight-tmc.yaml       | 131 ++++++
 .../bindings/arm/arm,coresight-tpiu.yaml      |  91 ++++
 ...yaml => arm,embedded-trace-extension.yaml} |   3 +-
 ...e.yaml => arm,trace-buffer-extension.yaml} |   2 +-
 .../bindings/arm/coresight-cpu-debug.txt      |  49 ---
 .../devicetree/bindings/arm/coresight.txt     | 402 ------------------
 Documentation/trace/coresight/coresight.rst   |   2 +-
 MAINTAINERS                                   |   8 +-
 18 files changed, 1192 insertions(+), 463 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
 rename Documentation/devicetree/bindings/arm/{coresight-cti.yaml => arm,coresight-cti.yaml} (98%)
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
 create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
 rename Documentation/devicetree/bindings/arm/{ete.yaml => arm,embedded-trace-extension.yaml} (95%)
 rename Documentation/devicetree/bindings/arm/{trbe.yaml => arm,trace-buffer-extension.yaml} (94%)
 delete mode 100644 Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
 delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt

--
2.34.1

author maintainer
#9 lore raw
Quoted 25 lines · Mathieu Poirier

Hi Rob,

Quoted 15 lines · Rob Herring

This series converts all the CoreSight debug bindings to DT schema format. These bindings are at the top of the list of occurrences of bindings without a schema. For arm64 dts files:

    702 ['arm,coresight-etm4x', 'arm,primecell']
    536 ['arm,coresight-cpu-debug', 'arm,primecell']
    509 ['arm,coresight-dynamic-funnel', 'arm,primecell']
    213 ['arm,coresight-tmc', 'arm,primecell']
    143 ['arm,coresight-dynamic-replicator', 'arm,primecell']
     97 ['arm,coresight-stm', 'arm,primecell']

I'll send a reply to these with the errors in dts files that this causes. I've reviewed them and they all look legit. Xilinx Zynq though has 3 clocks instead of 2.

Quoted 6 lines

v2:
- Rename other Coresight bindings to use compatible string for filename
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references

Quoted 4 lines

What a massive undertaking... I have looked scrupulously and everything adds up. Let me know if you were looking for me to pick this up. Otherwise:

Can you apply. I think there was another series from QCom touching the MAINTAINERS entry that will conflict.

There's a couple of indentation fixups. Can you fix when applying or do you want me to resend?

Rob

#10 lore raw
Quoted 26 lines · Rob Herring
Quoted 25 lines · Mathieu Poirier

Hi Rob,

Quoted 21 lines · Rob Herring

This series converts all the CoreSight debug bindings to DT schema format. These bindings are at the top of the list of occurrences of bindings without a schema. For arm64 dts files:

    702 ['arm,coresight-etm4x', 'arm,primecell']
    536 ['arm,coresight-cpu-debug', 'arm,primecell']
    509 ['arm,coresight-dynamic-funnel', 'arm,primecell']
    213 ['arm,coresight-tmc', 'arm,primecell']
    143 ['arm,coresight-dynamic-replicator', 'arm,primecell']
     97 ['arm,coresight-stm', 'arm,primecell']

I'll send a reply to these with the errors in dts files that this causes. I've reviewed them and they all look legit. Xilinx Zynq though has 3 clocks instead of 2.

v2:
- Rename other Coresight bindings to use compatible string for filename
- Add missing arm,coresight-dynamic-replicator.yaml and arm,coresight-static-funnel.yaml
- Update MAINTAINERS
- Fix coresight.txt references

Quoted 7 lines
Quoted 4 lines

What a massive undertaking... I have looked scrupulously and everything adds up. Let me know if you were looking for me to pick this up. Otherwise:

Can you apply. I think there was another series from QCom touching the MAINTAINERS entry that will conflict.

I just tried a rebased on today's linux-next and it didn't blow up.

Quoted 3 lines

There's a couple of indentation fixups. Can you fix when applying or do you want me to resend?

Fixed and applied.

Thanks,
Mathieu

Quoted 2 lines

Rob