diff mbox

[RFC,v2,10/10] dt-bindings: Document devicetree binding for ARM SPE

Message ID 1484323429-15231-11-git-send-email-will.deacon@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Will Deacon Jan. 13, 2017, 4:03 p.m. UTC
This patch documents the devicetree binding in use for ARM SPE.

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
---
 Documentation/devicetree/bindings/arm/spe-pmu.txt | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/spe-pmu.txt

Comments

Mark Rutland Jan. 13, 2017, 6:43 p.m. UTC | #1
On Fri, Jan 13, 2017 at 04:03:49PM +0000, Will Deacon wrote:
> This patch documents the devicetree binding in use for ARM SPE.
> 
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Rob Herring <robh@kernel.org>
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> ---
>  Documentation/devicetree/bindings/arm/spe-pmu.txt | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/arm/spe-pmu.txt
> 
> diff --git a/Documentation/devicetree/bindings/arm/spe-pmu.txt b/Documentation/devicetree/bindings/arm/spe-pmu.txt
> new file mode 100644
> index 000000000000..d6540b491af4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/spe-pmu.txt
> @@ -0,0 +1,20 @@
> +* ARMv8.2 Statistical Profiling Extension (SPE) Performance Monitor Units (PMU)
> +
> +ARMv8.2 introduces the optional Statistical Profiling Extension for collecting
> +performance sample data using an in-memory trace buffer.
> +
> +** SPE Required properties:
> +
> +- compatible : should be one of:
> +	       "arm,arm-spe-pmu-v1"

The second "arm" here doesn't seem to add much. Should that be "armv8.2"
instead?

That would roughly match what we do with the architected timers to
describe the specific architectural version.

Otherwise, this looks fine to me.

Thanks,
Mark.

> +- interrupts : Exactly 1 PPI must be listed. For heterogeneous systems where
> +               SPE is only supported on a subset of the CPUs, please consult
> +	       the arm,gic-v3 binding for details on describing a PPI partition.
> +
> +** Example:
> +
> +spe-pmu {
> +        compatible = "arm,arm-spe-pmu-v1";
> +        interrupts = <GIC_PPI 05 IRQ_TYPE_EDGE_RISING &part1>;
> +};
> -- 
> 2.1.4
>
Will Deacon Jan. 16, 2017, 10:59 a.m. UTC | #2
On Fri, Jan 13, 2017 at 06:43:52PM +0000, Mark Rutland wrote:
> On Fri, Jan 13, 2017 at 04:03:49PM +0000, Will Deacon wrote:
> > This patch documents the devicetree binding in use for ARM SPE.
> > 
> > Cc: Mark Rutland <mark.rutland@arm.com>
> > Cc: Rob Herring <robh@kernel.org>
> > Signed-off-by: Will Deacon <will.deacon@arm.com>
> > ---
> >  Documentation/devicetree/bindings/arm/spe-pmu.txt | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/arm/spe-pmu.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/arm/spe-pmu.txt b/Documentation/devicetree/bindings/arm/spe-pmu.txt
> > new file mode 100644
> > index 000000000000..d6540b491af4
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/arm/spe-pmu.txt
> > @@ -0,0 +1,20 @@
> > +* ARMv8.2 Statistical Profiling Extension (SPE) Performance Monitor Units (PMU)
> > +
> > +ARMv8.2 introduces the optional Statistical Profiling Extension for collecting
> > +performance sample data using an in-memory trace buffer.
> > +
> > +** SPE Required properties:
> > +
> > +- compatible : should be one of:
> > +	       "arm,arm-spe-pmu-v1"
> 
> The second "arm" here doesn't seem to add much. Should that be "armv8.2"
> instead?

I don't think armv8.2 is particularly helpful, because that effectively ties
together the SPE version and the architecture version, which I don't think
is strictly required. The reason I added it was so that you could describe
a partner implementation as something like:

  acme,arm-spe-pmu-v1

and know that it was acme's implementation of an ARM architectural feature.

If I drop the second "arm", I was worried that it might conflict with other
namespaces (e.g. acme's signal-processing-element's power-management-unit).

What do you reckon?

Will
Kim Phillips Jan. 17, 2017, 4:31 p.m. UTC | #3
On Mon, 16 Jan 2017 10:59:04 +0000
Will Deacon <will.deacon@arm.com> wrote:

> On Fri, Jan 13, 2017 at 06:43:52PM +0000, Mark Rutland wrote:
> > On Fri, Jan 13, 2017 at 04:03:49PM +0000, Will Deacon wrote:
> > > +- compatible : should be one of:
> > > +	       "arm,arm-spe-pmu-v1"
> > 
> > The second "arm" here doesn't seem to add much. Should that be "armv8.2"
> > instead?
> 
> I don't think armv8.2 is particularly helpful, because that effectively ties
> together the SPE version and the architecture version, which I don't think
> is strictly required. The reason I added it was so that you could describe
> a partner implementation as something like:
> 
>   acme,arm-spe-pmu-v1
> 
> and know that it was acme's implementation of an ARM architectural feature.

Wouldn't such an implementation be compatible with an
"arm,arm-spe-pmu-v1" (or one with less "arm"s)?

> If I drop the second "arm", I was worried that it might conflict with other
> namespaces (e.g. acme's signal-processing-element's power-management-unit).

I'd personally let them worry about that, esp. because this problem
would come up first and hopefully be fixed in the marketing domain
before it reaches its device tree specification stage.

Kim
Mark Rutland Jan. 17, 2017, 4:45 p.m. UTC | #4
On Mon, Jan 16, 2017 at 10:59:04AM +0000, Will Deacon wrote:
> On Fri, Jan 13, 2017 at 06:43:52PM +0000, Mark Rutland wrote:
> > On Fri, Jan 13, 2017 at 04:03:49PM +0000, Will Deacon wrote:
> > > This patch documents the devicetree binding in use for ARM SPE.
> > > 
> > > Cc: Mark Rutland <mark.rutland@arm.com>
> > > Cc: Rob Herring <robh@kernel.org>
> > > Signed-off-by: Will Deacon <will.deacon@arm.com>
> > > ---
> > >  Documentation/devicetree/bindings/arm/spe-pmu.txt | 20 ++++++++++++++++++++
> > >  1 file changed, 20 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/arm/spe-pmu.txt
> > > 
> > > diff --git a/Documentation/devicetree/bindings/arm/spe-pmu.txt b/Documentation/devicetree/bindings/arm/spe-pmu.txt
> > > new file mode 100644
> > > index 000000000000..d6540b491af4
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/arm/spe-pmu.txt
> > > @@ -0,0 +1,20 @@
> > > +* ARMv8.2 Statistical Profiling Extension (SPE) Performance Monitor Units (PMU)
> > > +
> > > +ARMv8.2 introduces the optional Statistical Profiling Extension for collecting
> > > +performance sample data using an in-memory trace buffer.
> > > +
> > > +** SPE Required properties:
> > > +
> > > +- compatible : should be one of:
> > > +	       "arm,arm-spe-pmu-v1"
> > 
> > The second "arm" here doesn't seem to add much. Should that be "armv8.2"
> > instead?
> 
> I don't think armv8.2 is particularly helpful, because that effectively ties
> together the SPE version and the architecture version, which I don't think
> is strictly required.

Sure; I was mostly going by the example of the generic timer (which
changed somewhat between ARMv7 and ARMv8), but if SPE is somewhat
decoupled from ARMv8.2 that's not a big concern.

> The reason I added it was so that you could describe
> a partner implementation as something like:
> 
>   acme,arm-spe-pmu-v1
> 
> and know that it was acme's implementation of an ARM architectural feature.

We don't seem to do this for the SMMU, or elsewhere that I am aware of.

> If I drop the second "arm", I was worried that it might conflict with other
> namespaces (e.g. acme's signal-processing-element's power-management-unit).

That does sound possible.

Another way of avoiding this would be to expand "spe" (and we can drop
"pmu", since that's not actually part of the SPE name, and implied
anyhow).

How would you feel about:

"arm,statisitical-profiling-extension-v1"

Thanks,
Mark.
Mark Rutland Jan. 17, 2017, 4:50 p.m. UTC | #5
On Tue, Jan 17, 2017 at 10:31:00AM -0600, Kim Phillips wrote:
> On Mon, 16 Jan 2017 10:59:04 +0000 Will Deacon <will.deacon@arm.com> wrote:
> > On Fri, Jan 13, 2017 at 06:43:52PM +0000, Mark Rutland wrote:
> > > On Fri, Jan 13, 2017 at 04:03:49PM +0000, Will Deacon wrote:
> > > > +- compatible : should be one of:
> > > > +	       "arm,arm-spe-pmu-v1"
> > > 
> > > The second "arm" here doesn't seem to add much. Should that be "armv8.2"
> > > instead?
> > 
> > I don't think armv8.2 is particularly helpful, because that effectively ties
> > together the SPE version and the architecture version, which I don't think
> > is strictly required. The reason I added it was so that you could describe
> > a partner implementation as something like:
> > 
> >   acme,arm-spe-pmu-v1
> > 
> > and know that it was acme's implementation of an ARM architectural feature.
> 
> Wouldn't such an implementation be compatible with an
> "arm,arm-spe-pmu-v1" (or one with less "arm"s)?

We'd expect that, but in the case of significant divergence (e.g.
errata), we may not expect the fallback to the ARM compatible string.

That said, I'm not keen on the duplicate "arm" here, regardless.

> > If I drop the second "arm", I was worried that it might conflict with other
> > namespaces (e.g. acme's signal-processing-element's power-management-unit).
> 
> I'd personally let them worry about that, esp. because this problem
> would come up first and hopefully be fixed in the marketing domain
> before it reaches its device tree specification stage.

FWIW, I think that marketing is completely unrelated.

I can imagine we might have a clash, but I suspect it's unlikely if we
have enough oversight of the bindings (i.e. so long as we keep an eye
out, and the DT maintainers get Cc'd on anything likely to clash).

Thanks,
Mark.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/arm/spe-pmu.txt b/Documentation/devicetree/bindings/arm/spe-pmu.txt
new file mode 100644
index 000000000000..d6540b491af4
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/spe-pmu.txt
@@ -0,0 +1,20 @@ 
+* ARMv8.2 Statistical Profiling Extension (SPE) Performance Monitor Units (PMU)
+
+ARMv8.2 introduces the optional Statistical Profiling Extension for collecting
+performance sample data using an in-memory trace buffer.
+
+** SPE Required properties:
+
+- compatible : should be one of:
+	       "arm,arm-spe-pmu-v1"
+
+- interrupts : Exactly 1 PPI must be listed. For heterogeneous systems where
+               SPE is only supported on a subset of the CPUs, please consult
+	       the arm,gic-v3 binding for details on describing a PPI partition.
+
+** Example:
+
+spe-pmu {
+        compatible = "arm,arm-spe-pmu-v1";
+        interrupts = <GIC_PPI 05 IRQ_TYPE_EDGE_RISING &part1>;
+};