Message ID | 20210225193543.2920532-16-suzuki.poulose@arm.com |
---|---|
State | New |
Headers | show |
Series | None | expand |
On Thu, Feb 25, 2021 at 07:35:39PM +0000, Suzuki K Poulose wrote: > Document the device tree bindings for Embedded Trace Extensions. > ETE can be connected to legacy coresight components and thus > could optionally contain a connection graph as described by > the CoreSight bindings. > > Cc: devicetree@vger.kernel.org > Cc: Mathieu Poirier <mathieu.poirier@linaro.org> > Cc: Mike Leach <mike.leach@linaro.org> > Cc: Rob Herring <robh@kernel.org> > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> > --- > Changes: > - Fix out-ports defintion > --- > .../devicetree/bindings/arm/ete.yaml | 71 +++++++++++++++++++ > 1 file changed, 71 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/ete.yaml > > diff --git a/Documentation/devicetree/bindings/arm/ete.yaml b/Documentation/devicetree/bindings/arm/ete.yaml > new file mode 100644 > index 000000000000..35a42d92bf97 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/ete.yaml > @@ -0,0 +1,71 @@ > +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause > +# Copyright 2021, Arm Ltd > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/arm/ete.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: ARM Embedded Trace Extensions > + > +maintainers: > + - Suzuki K Poulose <suzuki.poulose@arm.com> > + - Mathieu Poirier <mathieu.poirier@linaro.org> > + > +description: | > + Arm Embedded Trace Extension(ETE) is a per CPU trace component that > + allows tracing the CPU execution. It overlaps with the CoreSight ETMv4 > + architecture and has extended support for future architecture changes. > + The trace generated by the ETE could be stored via legacy CoreSight > + components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer > + 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: > + pattern: "^ete([0-9a-f]+)$" > + compatible: > + items: > + - const: arm,embedded-trace-extension > + > + cpu: > + description: | > + Handle to the cpu this ETE is bound to. > + $ref: /schemas/types.yaml#/definitions/phandle > + > + out-ports: > + description: | > + Output connections from the ETE to legacy CoreSight trace bus. > + $ref: /schemas/graph.yaml#/properties/port s/port/ports/ And then you need: properties: port: description: what this port is $ref: /schemas/graph.yaml#/properties/port > + > +required: > + - compatible > + - cpu > + > +additionalProperties: false > + > +examples: > + > +# An ETE node without legacy CoreSight connections > + - | > + ete0 { > + compatible = "arm,embedded-trace-extension"; > + cpu = <&cpu_0>; > + }; > +# An ETE node with legacy CoreSight connections > + - | > + ete1 { > + compatible = "arm,embedded-trace-extension"; > + cpu = <&cpu_1>; > + > + out-ports { /* legacy coresight connection */ > + port { > + ete1_out_port: endpoint { > + remote-endpoint = <&funnel_in_port0>; > + }; > + }; > + }; > + }; > + > +... > -- > 2.24.1 >
Hi Suzuki Need to add this file and the TRBE bindings file to the ARM/CORESIGHT section of the MAINTAINERS file. Regards Mike On Sat, 6 Mar 2021 at 21:06, Rob Herring <robh@kernel.org> wrote: > > On Thu, Feb 25, 2021 at 07:35:39PM +0000, Suzuki K Poulose wrote: > > Document the device tree bindings for Embedded Trace Extensions. > > ETE can be connected to legacy coresight components and thus > > could optionally contain a connection graph as described by > > the CoreSight bindings. > > > > Cc: devicetree@vger.kernel.org > > Cc: Mathieu Poirier <mathieu.poirier@linaro.org> > > Cc: Mike Leach <mike.leach@linaro.org> > > Cc: Rob Herring <robh@kernel.org> > > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> > > --- > > Changes: > > - Fix out-ports defintion > > --- > > .../devicetree/bindings/arm/ete.yaml | 71 +++++++++++++++++++ > > 1 file changed, 71 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/arm/ete.yaml > > > > diff --git a/Documentation/devicetree/bindings/arm/ete.yaml b/Documentation/devicetree/bindings/arm/ete.yaml > > new file mode 100644 > > index 000000000000..35a42d92bf97 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/arm/ete.yaml > > @@ -0,0 +1,71 @@ > > +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause > > +# Copyright 2021, Arm Ltd > > +%YAML 1.2 > > +--- > > +$id: "http://devicetree.org/schemas/arm/ete.yaml#" > > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > > + > > +title: ARM Embedded Trace Extensions > > + > > +maintainers: > > + - Suzuki K Poulose <suzuki.poulose@arm.com> > > + - Mathieu Poirier <mathieu.poirier@linaro.org> > > + > > +description: | > > + Arm Embedded Trace Extension(ETE) is a per CPU trace component that > > + allows tracing the CPU execution. It overlaps with the CoreSight ETMv4 > > + architecture and has extended support for future architecture changes. > > + The trace generated by the ETE could be stored via legacy CoreSight > > + components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer > > + 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: > > + pattern: "^ete([0-9a-f]+)$" > > + compatible: > > + items: > > + - const: arm,embedded-trace-extension > > + > > + cpu: > > + description: | > > + Handle to the cpu this ETE is bound to. > > + $ref: /schemas/types.yaml#/definitions/phandle > > + > > + out-ports: > > + description: | > > + Output connections from the ETE to legacy CoreSight trace bus. > > + $ref: /schemas/graph.yaml#/properties/port > > s/port/ports/ > > And then you need: > > properties: > port: > description: what this port is > $ref: /schemas/graph.yaml#/properties/port > > > + > > +required: > > + - compatible > > + - cpu > > + > > +additionalProperties: false > > + > > +examples: > > + > > +# An ETE node without legacy CoreSight connections > > + - | > > + ete0 { > > + compatible = "arm,embedded-trace-extension"; > > + cpu = <&cpu_0>; > > + }; > > +# An ETE node with legacy CoreSight connections > > + - | > > + ete1 { > > + compatible = "arm,embedded-trace-extension"; > > + cpu = <&cpu_1>; > > + > > + out-ports { /* legacy coresight connection */ > > + port { > > + ete1_out_port: endpoint { > > + remote-endpoint = <&funnel_in_port0>; > > + }; > > + }; > > + }; > > + }; > > + > > +... > > -- > > 2.24.1 > > -- Mike Leach Principal Engineer, ARM Ltd. Manchester Design Centre. UK
Hi Rob On 06/03/2021 21:06, Rob Herring wrote: > On Thu, Feb 25, 2021 at 07:35:39PM +0000, Suzuki K Poulose wrote: >> Document the device tree bindings for Embedded Trace Extensions. >> ETE can be connected to legacy coresight components and thus >> could optionally contain a connection graph as described by >> the CoreSight bindings. >> >> Cc: devicetree@vger.kernel.org >> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> >> Cc: Mike Leach <mike.leach@linaro.org> >> Cc: Rob Herring <robh@kernel.org> >> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> >> --- >> Changes: >> - Fix out-ports defintion >> --- >> .../devicetree/bindings/arm/ete.yaml | 71 +++++++++++++++++++ >> 1 file changed, 71 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/arm/ete.yaml >> >> diff --git a/Documentation/devicetree/bindings/arm/ete.yaml b/Documentation/devicetree/bindings/arm/ete.yaml >> new file mode 100644 >> index 000000000000..35a42d92bf97 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/arm/ete.yaml >> @@ -0,0 +1,71 @@ >> +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause >> +# Copyright 2021, Arm Ltd >> +%YAML 1.2 >> +--- >> +$id: "http://devicetree.org/schemas/arm/ete.yaml#" >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >> + >> +title: ARM Embedded Trace Extensions >> + >> +maintainers: >> + - Suzuki K Poulose <suzuki.poulose@arm.com> >> + - Mathieu Poirier <mathieu.poirier@linaro.org> >> + >> +description: | >> + Arm Embedded Trace Extension(ETE) is a per CPU trace component that >> + allows tracing the CPU execution. It overlaps with the CoreSight ETMv4 >> + architecture and has extended support for future architecture changes. >> + The trace generated by the ETE could be stored via legacy CoreSight >> + components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer >> + 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: >> + pattern: "^ete([0-9a-f]+)$" >> + compatible: >> + items: >> + - const: arm,embedded-trace-extension >> + >> + cpu: >> + description: | >> + Handle to the cpu this ETE is bound to. >> + $ref: /schemas/types.yaml#/definitions/phandle >> + >> + out-ports: >> + description: | >> + Output connections from the ETE to legacy CoreSight trace bus. >> + $ref: /schemas/graph.yaml#/properties/port > > s/port/ports/ Ok. > > And then you need: > > properties: > port: > description: what this port is > $ref: /schemas/graph.yaml#/properties/port Isn't this already covered by the definition of ports ? There are no fixed connections for ETE. It is optional and could be connected to any legacy CoreSight component. i.e, a "ports" object can have port objects inside. Given we have defined out-ports as an object "confirming to the ports" do we need to describe the individual port nodes ? Cheers Suzuki
On Mon, Mar 22, 2021 at 10:53 AM Suzuki K Poulose <suzuki.poulose@arm.com> wrote: > > Hi Rob > > On 06/03/2021 21:06, Rob Herring wrote: > > On Thu, Feb 25, 2021 at 07:35:39PM +0000, Suzuki K Poulose wrote: > >> Document the device tree bindings for Embedded Trace Extensions. > >> ETE can be connected to legacy coresight components and thus > >> could optionally contain a connection graph as described by > >> the CoreSight bindings. > >> > >> Cc: devicetree@vger.kernel.org > >> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> > >> Cc: Mike Leach <mike.leach@linaro.org> > >> Cc: Rob Herring <robh@kernel.org> > >> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> > >> --- > >> Changes: > >> - Fix out-ports defintion > >> --- > >> .../devicetree/bindings/arm/ete.yaml | 71 +++++++++++++++++++ > >> 1 file changed, 71 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/arm/ete.yaml > >> > >> diff --git a/Documentation/devicetree/bindings/arm/ete.yaml b/Documentation/devicetree/bindings/arm/ete.yaml > >> new file mode 100644 > >> index 000000000000..35a42d92bf97 > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/arm/ete.yaml > >> @@ -0,0 +1,71 @@ > >> +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause > >> +# Copyright 2021, Arm Ltd > >> +%YAML 1.2 > >> +--- > >> +$id: "http://devicetree.org/schemas/arm/ete.yaml#" > >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > >> + > >> +title: ARM Embedded Trace Extensions > >> + > >> +maintainers: > >> + - Suzuki K Poulose <suzuki.poulose@arm.com> > >> + - Mathieu Poirier <mathieu.poirier@linaro.org> > >> + > >> +description: | > >> + Arm Embedded Trace Extension(ETE) is a per CPU trace component that > >> + allows tracing the CPU execution. It overlaps with the CoreSight ETMv4 > >> + architecture and has extended support for future architecture changes. > >> + The trace generated by the ETE could be stored via legacy CoreSight > >> + components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer > >> + 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: > >> + pattern: "^ete([0-9a-f]+)$" > >> + compatible: > >> + items: > >> + - const: arm,embedded-trace-extension > >> + > >> + cpu: > >> + description: | > >> + Handle to the cpu this ETE is bound to. > >> + $ref: /schemas/types.yaml#/definitions/phandle > >> + > >> + out-ports: > >> + description: | > >> + Output connections from the ETE to legacy CoreSight trace bus. > >> + $ref: /schemas/graph.yaml#/properties/port > > > > s/port/ports/ > > Ok. > > > > > And then you need: > > > > properties: > > port: > > description: what this port is > > $ref: /schemas/graph.yaml#/properties/port > > Isn't this already covered by the definition of ports ? There are no > fixed connections for ETE. It is optional and could be connected to > any legacy CoreSight component. i.e, a "ports" object can have port > objects inside. 'properties/ports' only defines that you have 'port' nodes within it. > Given we have defined out-ports as an object "confirming to the ports" > do we need to describe the individual port nodes ? Yes, you have to define what the 'port' nodes are. A port is a data stream and you should know what your hardware has. What the data stream is connected to is outside the scope of the binding. Rob
On 22/03/2021 17:28, Rob Herring wrote: > On Mon, Mar 22, 2021 at 10:53 AM Suzuki K Poulose > <suzuki.poulose@arm.com> wrote: >> >> Hi Rob >> >> On 06/03/2021 21:06, Rob Herring wrote: >>> On Thu, Feb 25, 2021 at 07:35:39PM +0000, Suzuki K Poulose wrote: >>>> Document the device tree bindings for Embedded Trace Extensions. >>>> ETE can be connected to legacy coresight components and thus >>>> could optionally contain a connection graph as described by >>>> the CoreSight bindings. >>>> >>>> Cc: devicetree@vger.kernel.org >>>> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> >>>> Cc: Mike Leach <mike.leach@linaro.org> >>>> Cc: Rob Herring <robh@kernel.org> >>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> >>>> --- >>>> + out-ports: >>>> + description: | >>>> + Output connections from the ETE to legacy CoreSight trace bus. >>>> + $ref: /schemas/graph.yaml#/properties/port >>> >>> s/port/ports/ >> >> Ok. >> >>> >>> And then you need: >>> >>> properties: >>> port: >>> description: what this port is >>> $ref: /schemas/graph.yaml#/properties/port >> >> Isn't this already covered by the definition of ports ? There are no >> fixed connections for ETE. It is optional and could be connected to >> any legacy CoreSight component. i.e, a "ports" object can have port >> objects inside. > > 'properties/ports' only defines that you have 'port' nodes within it. > >> Given we have defined out-ports as an object "confirming to the ports" >> do we need to describe the individual port nodes ? > > Yes, you have to define what the 'port' nodes are. A port is a data > stream and you should know what your hardware has. What the data > stream is connected to is outside the scope of the binding. Ok, I have included the above changes for the next version. Thanks Suzuki
diff --git a/Documentation/devicetree/bindings/arm/ete.yaml b/Documentation/devicetree/bindings/arm/ete.yaml new file mode 100644 index 000000000000..35a42d92bf97 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/ete.yaml @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause +# Copyright 2021, Arm Ltd +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/arm/ete.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: ARM Embedded Trace Extensions + +maintainers: + - Suzuki K Poulose <suzuki.poulose@arm.com> + - Mathieu Poirier <mathieu.poirier@linaro.org> + +description: | + Arm Embedded Trace Extension(ETE) is a per CPU trace component that + allows tracing the CPU execution. It overlaps with the CoreSight ETMv4 + architecture and has extended support for future architecture changes. + The trace generated by the ETE could be stored via legacy CoreSight + components (e.g, TMC-ETR) or other means (e.g, using a per CPU buffer + 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: + pattern: "^ete([0-9a-f]+)$" + compatible: + items: + - const: arm,embedded-trace-extension + + cpu: + description: | + Handle to the cpu this ETE is bound to. + $ref: /schemas/types.yaml#/definitions/phandle + + out-ports: + description: | + Output connections from the ETE to legacy CoreSight trace bus. + $ref: /schemas/graph.yaml#/properties/port + +required: + - compatible + - cpu + +additionalProperties: false + +examples: + +# An ETE node without legacy CoreSight connections + - | + ete0 { + compatible = "arm,embedded-trace-extension"; + cpu = <&cpu_0>; + }; +# An ETE node with legacy CoreSight connections + - | + ete1 { + compatible = "arm,embedded-trace-extension"; + cpu = <&cpu_1>; + + out-ports { /* legacy coresight connection */ + port { + ete1_out_port: endpoint { + remote-endpoint = <&funnel_in_port0>; + }; + }; + }; + }; + +...
Document the device tree bindings for Embedded Trace Extensions. ETE can be connected to legacy coresight components and thus could optionally contain a connection graph as described by the CoreSight bindings. Cc: devicetree@vger.kernel.org Cc: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Mike Leach <mike.leach@linaro.org> Cc: Rob Herring <robh@kernel.org> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> --- Changes: - Fix out-ports defintion --- .../devicetree/bindings/arm/ete.yaml | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/ete.yaml -- 2.24.1