public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: punit.agrawal@arm•com (Punit Agrawal)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH] drivers: CCI: add ARM CCI PMU support
Date: Thu, 15 Aug 2013 10:10:02 +0100	[thread overview]
Message-ID: <520C9AEA.6030507@arm.com> (raw)
In-Reply-To: <2CD735CE-3FCF-4AB5-89C0-D813ECD19F11@codeaurora.org>

Hi Kumar,

Thanks for a review of the bindings.

On 14/08/13 22:03, Kumar Gala wrote:
>
> On Jul 23, 2013, at 4:19 AM, Punit Agrawal wrote:
>
>> The CCI PMU can profile bus transactions at the master and slave
>> interfaces of the CCI. The PMU can be used to observe an aggregated view
>> of the bus traffic between the various components connected to the CCI.
>>
>> Extend the existing CCI driver to support the PMU by registering a perf
>> backend for it.
>>
>> Document the device tree binding to describe the CCI PMU.
>>
>> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm•com>
>> Cc: Nicolas Pitre <nico@linaro•org>
>> Cc: Dave Martin <dave.martin@linaro•org>
>> Cc: Rob Herring <rob.herring@calxeda•com>
>> Cc: Will Deacon <will.deacon@arm•com>
>> Signed-off-by: Punit Agrawal <punit.agrawal@arm•com>
>> Reviewed-by: Will Deacon <will.deacon@arm•com>
>> ---
>> Documentation/devicetree/bindings/arm/cci.txt |   38 ++
>> drivers/bus/arm-cci.c                         |  642 +++++++++++++++++++++++++
>> 2 files changed, 680 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/cci.txt b/Documentation/devicetree/bindings/arm/cci.txt
>> index 92d36e2..5bc95e5 100644
>> --- a/Documentation/devicetree/bindings/arm/cci.txt
>> +++ b/Documentation/devicetree/bindings/arm/cci.txt
>> @@ -79,6 +79,34 @@ specific to ARM.
>> 				    corresponding interface programming
>> 				    registers.
>>
>> +	- CCI PMU node
>> +
>> +		Node name must be "pmu".
>> +		Parent node must be CCI interconnect node.
>> +
>> +		A CCI pmu node must contain the following properties:
>> +
>> +		- compatible
>> +			Usage: required
>> +			Value type: <string>
>> +			Definition: must be set to one of
>> +				    "arm,cci-400-pmu"
>> +				    "arm,cci-400-pmu,rev0"
>> +				    "arm,cci-400-pmu,rev1"
>
> Do you really mean only one?  Seems like ""arm,cci-400-pmu,rev0", "arm,cci-400-pmu" would be valid.
>

Hmm... yes both would be valid. But...

The event numbering scheme changed between Rev 0 and Rev 1 of the CCI. 
If the revision is specified then it is used to get the event ranges to 
validate the events. If not, i.e., "arm,cci-400-pmu" is used, then the 
driver tries to find the the revision by reading the peripheral id 
registers.

I was trying to make the bindings robust in the face of change in 
behaviour between different revisons of the IP.

>> +
>> +		- reg:
>> +			Usage: required
>> +			Value type: <prop-encoded-array>
>> +			Definition: the base address and size of the
>> +				    corresponding interface programming
>> +				    registers.
>> +
>> +		- interrupts:
>> +			Usage: required
>> +			Value type: <prop-encoded-array>
>> +			Definition: comma-separated list of unique PMU
>> +				    interrupts
>
> What is the list of interrupts related to, should there be an associated interrupts-names
>

For the CCI PMU, each interrupt signal corresponds to the overflow of a 
performance counter.

Here again, I was trying to be robust in the face of differing hardware 
configurations - specially the scenario where multiple interrupt lines 
from the CCI PMU are tied together to generate a single interrupt to the 
CPU.

Cheers,
Punit

>> +
>> * CCI interconnect bus masters
>>
>> 	Description: masters in the device tree connected to a CCI port
>> @@ -163,6 +191,16 @@ Example:
>> 			interface-type = "ace";
>> 			reg = <0x5000 0x1000>;
>> 		};
>> +
>> +		pmu at 9000 {
>> +			 compatible = "arm,cci-400-pmu,rev0";
>> +			 reg = <0x9000 0x5000>;
>> +			 interrupts = <0 101 4>,
>> +				      <0 102 4>,
>> +				      <0 103 4>,
>> +				      <0 104 4>,
>> +				      <0 105 4>;
>> +		};
>> 	};
>>
>
> [ snip ]
>
> - k
>
> --
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
>
>
>
>

  parent reply	other threads:[~2013-08-15  9:10 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-11  3:00 [PATCH] drivers: CCI: add ARM CCI PMU support Punit Agrawal
2013-08-05 11:37 ` Punit Agrawal
2013-08-07  1:45   ` Will Deacon
2013-08-12 13:59     ` Will Deacon
2013-08-12 16:08       ` Will Deacon
2013-08-12 16:58         ` Punit Agrawal
2013-08-14 21:03 ` Kumar Gala
2013-08-14 22:38   ` Rob Herring
2013-08-15 10:01     ` Punit Agrawal
2013-08-15  9:10   ` Punit Agrawal [this message]
2013-08-15 16:25     ` Kumar Gala
2013-08-16 10:31       ` Punit Agrawal
2013-08-16 10:53         ` Kumar Gala
2013-08-15 19:00     ` Kumar Gala
2013-08-16 10:56       ` Punit Agrawal
2013-08-16 11:31         ` Kumar Gala
2013-08-16 12:41           ` Punit Agrawal
2013-08-14 21:06 ` Stephen Warren
2013-08-14 21:09   ` Kumar Gala
2013-08-14 21:13     ` Stephen Warren
2013-08-14 21:16       ` Kumar Gala
2013-08-15 10:09         ` Punit Agrawal
2013-08-16 17:19 ` [PATCH v2] " Punit Agrawal
2013-08-16 18:31   ` Stephen Warren
2013-08-19 11:14     ` Punit Agrawal
2013-08-19 16:15       ` Stephen Warren
2013-08-16 18:47   ` Kumar Gala
2013-08-19 11:21     ` Punit Agrawal
2013-08-20 15:07   ` Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=520C9AEA.6030507@arm.com \
    --to=punit.agrawal@arm$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox