Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3063372iog; Mon, 20 Jun 2022 10:23:11 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tFF9tXBdbVOUXcjh+MqoHeYE/o0MROsnSCrmg4RCGxv6K0wY5mWJV2q5gnPmulbT2xV5XI X-Received: by 2002:a63:751b:0:b0:40c:9c39:c890 with SMTP id q27-20020a63751b000000b0040c9c39c890mr8936525pgc.302.1655745790957; Mon, 20 Jun 2022 10:23:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655745790; cv=none; d=google.com; s=arc-20160816; b=ESd75Zt2IMdJCfT2Jp/G10LiS+pHI9EG+0CLG7Dxk0re6AqzKnxJQ7dsv6kQ8B5k+w ENGWcMPrQ3msEEIp8qLZXC8+5wcidG0c5h0zJMsMdrwXJaH/EM5vnGPI5p0BwmtdrNSs E2d4lj/bLRzFqGExvmOAri0nl9BL9Q87RUysbWovlhiUVc9bDwqCMxjW8BpAm9nS/3jo Nqfo15K/RDG3E8cbZB2K2qWMWGx61gc3iSff8W1QaEGgWtvc+T9HY9Im4DGgLCJ3HjTH QMgWVdNBYvSNE/+2r/PVoAzFFlK6Da/kg7mHYJijWv4lvWFE/MZXfy69VIdEbQ7Pn7GZ TUGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=qJaUtWUwjWTgp6GClqVEXSMtLOOKEdx+gkfSzesSo9M=; b=E9tZwpwcQKvdXrqKuhgnU7bZPEZYMiu5wXX6nI9WvLKRkBpx30HR6eYZU0zFVecjrV 20HxAdYkSsVmEFLqD7qksTqxvyvBcE0Z/lX1CbTmTVhFRXKlMPh+4I7ZbVd4/Zwnfi+E pMD1bxSdAMwKZtXQjJ/ZGt3fMf1W4n96oLU63fGUQmU8hmyfsMEb/2Ur5Ww7r3aoL7uQ bTmm5Tngo0geRWAfEDCL3hmDu0trjGEL2KnLbJaAn7hMSlqOuAHSfimZt9z2W9/oSOOZ e3F8lOzq4VdYYea19zV6AFHJR/DVcliRjYsTLWgjStQ5gDNAmuzApFrDNwkmK09C87j6 a0KA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e19-20020a62aa13000000b005228146096esi870453pff.340.2022.06.20.10.22.58; Mon, 20 Jun 2022 10:23:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241320AbiFTRR2 (ORCPT + 99 others); Mon, 20 Jun 2022 13:17:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237807AbiFTRRZ (ORCPT ); Mon, 20 Jun 2022 13:17:25 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D61861E3EA; Mon, 20 Jun 2022 10:17:23 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 24221139F; Mon, 20 Jun 2022 10:17:23 -0700 (PDT) Received: from [10.57.84.19] (unknown [10.57.84.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BA0153F7D7; Mon, 20 Jun 2022 10:17:21 -0700 (PDT) Message-ID: <01e9e2a0-df0a-3b31-f819-d68c6eb0f01d@arm.com> Date: Mon, 20 Jun 2022 18:17:20 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH v2 2/3] dt-bindings: arm: Convert CoreSight bindings to DT schema To: Rob Herring , Mathieu Poirier , Mike Leach , Leo Yan , Krzysztof Kozlowski Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20220603011933.3277315-1-robh@kernel.org> <20220603011933.3277315-3-robh@kernel.org> From: Suzuki K Poulose In-Reply-To: <20220603011933.3277315-3-robh@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob A big Thank You for the effort ! A minor comment below. On 03/06/2022 02:19, Rob Herring wrote: > Each CoreSight component has slightly different requirements and > nothing applies to every component, so each CoreSight component has its > own schema document. > > Signed-off-by: Rob Herring > -- > 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 > ... > diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml > new file mode 100644 > index 000000000000..e0377ce48537 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml > @@ -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 > + - Mike Leach > + - Leo Yan > + - Suzuki K Poulose > + > +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: > + - 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 ? > + > + 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>; > + }; > + }; > + }; > + }; > +... > diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml > new file mode 100644 > index 000000000000..b9da30ab9ccd > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml > @@ -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# ... > + - 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. > + compatible = "arm,coresight-static-funnel"; ... > diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml > new file mode 100644 > index 000000000000..66ee97370fb2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml > @@ -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 ... > +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. > + 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>; > + }; > + }; > + }; > + }; > +... > diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml > new file mode 100644 > index 000000000000..905008faa012 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml > @@ -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 > + - Mike Leach > + - Leo Yan > + - Suzuki K Poulose > + > +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: > + - $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