From: Jon Hunter <jon-hunter-l0cyMroinI0@public.gmane.org>
To: Pratik Patel <pratikp-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Cc: "linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org"
<linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
"magnus.p.persson-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org"
<magnus.p.persson-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org>,
"david.rusling-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<david.rusling-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"arve-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org"
<arve-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org>,
"dsaxena-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<dsaxena-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"john.stultz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<john.stultz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"d-deao-l0cyMroinI0@public.gmane.org"
<d-deao-l0cyMroinI0@public.gmane.org>,
"christian.bejram-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org"
<christian.bejram-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org>,
"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: CoreSight framework and drivers
Date: Wed, 2 Jan 2013 14:00:21 -0600 [thread overview]
Message-ID: <50E491D5.3080106@ti.com> (raw)
In-Reply-To: <20121221221828.GA2658-9H3kiKr51/JHGpnEYu0o6d07Fnf2crXX0E9HWUfgJXw@public.gmane.org>
On 12/21/2012 04:18 PM, Pratik Patel wrote:
> On Thu, Dec 20, 2012 at 04:54:38PM -0600, Jon Hunter wrote:
>>
>> On 12/20/2012 01:51 PM, Pratik Patel wrote:
>>> On Thu, Dec 20, 2012 at 11:46:13AM -0600, Jon Hunter wrote:
>>>>
>>>> On 12/19/2012 03:24 PM, Pratik Patel wrote:
>>>>
>>>> [snip]
>>>>
>>>>> Currently we use the CoreSight virtual bus to conveniently list
>>>>> sysfs configuration attributes for all the registered CoreSight
>>>>> devices.
>>>>>
>>>>> For eg:
>>>>> /sys/bus/coresight/devices/coresight-etm0/<attribute>
>>>>> /sys/bus/coresight/devices/coresight-etm1/<attribute>
>>>>> /sys/bus/coresight/devices/coresight-stm/<attribute>
>>>>> /sys/bus/coresight/devices/coresight-tmc-etf/<attribute>
>>>>> ...
>>>>> ...
>>>>>
>>>>> Some of the attributes are based on device type (i.e. source,
>>>>> link or sink) so they will exist for all devices of that type
>>>>> while some are device specific.
>>>>>
>>>>> Maybe I am misunderstanding the question but are you suggesting
>>>>> to register CoreSight devices to the AMBA bus instead of the
>>>>> CoreSight core layer code?
>>>>
>>>> Yes exactly.
>>>>
>>>>> Will Deacon mentioned earlier that AMBA framework can be changed
>>>>> to accomodate devices with a different class but I am more
>>>>> concerned with losing some of the stuff that the core layer code
>>>>> does (eg. coresight_register, coresight_enable, coresight_disable
>>>>> in coresight.c) if we register CoreSight drivers to the AMBA bus
>>>>> without letting the core layer know about the device connections.
>>>>
>>>> I may be missing something, but couldn't you keep all the
>>>> register/enable/disable stuff but just register the device with the amba
>>>> bus? Obviously some changes would need to be made.
>>>>
>>>
>>> Ok, so are you referring to making CoreSight devices register
>>> with AMBA bus instead of platform bus keeping everything else
>>> intact?
>>
>> Yes exactly. However, please note I am not saying that we should do
>> this, and I asking what direction does the community want us to take
>> here? Platform bus or AMBA bus?
>>
>>>> Personally, I don't have strong feeling either way, but we have ETM/ETB
>>>> drivers using AMBA today and so I am hoping we can come to agreement on
>>>> this going forward.
>>>>
>>>> Russell, Will, what are your thoughts?
>>>>
>>>> Otherwise, looking at the code, I like what you have implemented. I
>>>> still need to look closer, but I am struggling to figure out how a
>>>> coresight device such as the cross-trigger-interface fits with this
>>>> model. This model appears to be geared towards coresight devices used
>>>> for traces purposes and are either source, links or sinks. The
>>>> cross-trigger-interface is not a source or a sink. However, although you
>>>> it could be considered as a link (routing events), it is not really, as
>>>> it may not link to other coresight sinks/source.
>>>>
>>>> In my case, I have PMU-IRQ --> CTI --> GIC. So a non-coresight source
>>>> and sink. In away the CTI looks more like a 2nd-level interrupt
>>>> controller than anything else. Hence, another type of coresight device
>>>> may be needed in addition to source, links and sinks. Or link is
>>>> extended in some way to connect to non-coresight sources/sinks.
>>>>
>>>> Let me know if you have any thoughts.
>>>>
>>>
>>> I had left the "None" type for miscellaneous stuff but I agree it
>>> should be a separate type - maybe "debug".
>>>
>>> Having said that I like the CTI driver you have uploaded. Need to
>>> look at it in more detail. Since CTI connections can vary between
>>> chip to chip, we need a generic way to deal with it.
>>
>> Yes if you have any ideas let me know. As Will had mentioned it would be
>> good to have a common function table all these devices could use too. I
>> will take a closer look at what you have.
>>
>
> I had started on a CTI driver much in line with your current
> implementation but your approach looks good to me.
>
> Looking at the code though, I couldn't find a way to perform a
> mapping between two different CTIs. Reason I ask is because we
> have use cases where we need to map one CTIs input to another
> CTIs output on the same channel.
The code is largely based upon the existing cti helpers, which just had
a cti_map_trigger() function. The use-case you described is not
supported by the current helpers and so also not supported in my initial
implementation (although we should add this). Hence, it would be
probably best to split the cti_map_trigger() into two functions say,
cti_map_triggerin() and cti_map_triggerout(), to map a trigger
input/output to a channel.
> Do you intend to support different entities within kernel to map
> different trig_in or trig_out on the same CTI? If so, it might
> probably require reference counting for the enable/disable.
I need to think about this some more, as this does make it a little more
complex. Right now only one entity can use a cti module at a time.
> What user interface do you plan to provide for the CTI? Maybe
> something consistent with other CoreSight components in sysfs to
> allow users to enable, disable, map and unmap ???
Yes that's possible.
> Please let me know your thoughts.
>
> CTIs can easily be made part of the CoreSight core layer using a
> different type but apart from being part of the CoreSight list
> containing all the trace and CTI components, not sure if there is
> anything that is useful to do in the core layer. Need to think
> about this.
Yes it would be good to make this all part of the same coresight framework.
Cheers
Jon
next prev parent reply other threads:[~2013-01-02 20:00 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-18 19:19 CoreSight framework and drivers pratikp
[not found] ` <1355858365-11849-1-git-send-email-pratikp-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2012-12-18 19:19 ` [RFC 1/8] coresight: add CoreSight core layer framework pratikp-sgV2jX0FEOL9JmXXK+q4OQ
2012-12-18 19:19 ` [RFC 2/8] coresight: add CoreSight TMC driver pratikp-sgV2jX0FEOL9JmXXK+q4OQ
2013-02-21 14:20 ` Robert MARKLUND
2012-12-18 19:19 ` [RFC 3/8] coresight: add CoreSight TPIU driver pratikp-sgV2jX0FEOL9JmXXK+q4OQ
2012-12-18 19:19 ` [RFC 4/8] coresight: add CoreSight ETB driver pratikp-sgV2jX0FEOL9JmXXK+q4OQ
[not found] ` <1355858365-11849-5-git-send-email-pratikp-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2012-12-20 17:49 ` Jon Hunter
[not found] ` <50D34F8F.5050304-l0cyMroinI0@public.gmane.org>
2012-12-20 19:54 ` Pratik Patel
2012-12-18 19:19 ` [RFC 5/8] coresight: add CoreSight Funnel driver pratikp-sgV2jX0FEOL9JmXXK+q4OQ
2012-12-18 19:19 ` [RFC 6/8] coresight: add CoreSight Replicator driver pratikp-sgV2jX0FEOL9JmXXK+q4OQ
2012-12-18 19:19 ` [RFC 7/8] coresight: add CoreSight STM driver pratikp-sgV2jX0FEOL9JmXXK+q4OQ
2012-12-18 19:19 ` [RFC 8/8] coresight: add CoreSight ETM driver pratikp-sgV2jX0FEOL9JmXXK+q4OQ
2012-12-19 11:23 ` CoreSight framework and drivers Will Deacon
[not found] ` <20121219112314.GA26329-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2012-12-19 17:03 ` Jon Hunter
2012-12-19 21:24 ` Pratik Patel
2012-12-20 17:46 ` Jon Hunter
2012-12-20 19:51 ` Pratik Patel
2012-12-20 20:16 ` Jean Pihet
2012-12-21 22:12 ` Pratik Patel
2012-12-20 22:54 ` Jon Hunter
2012-12-20 23:40 ` Russell King - ARM Linux
2012-12-21 22:17 ` Pratik Patel
2012-12-21 22:18 ` Pratik Patel
[not found] ` <20121221221828.GA2658-9H3kiKr51/JHGpnEYu0o6d07Fnf2crXX0E9HWUfgJXw@public.gmane.org>
2012-12-23 11:32 ` Will Deacon
2013-01-03 18:06 ` Pratik Patel
[not found] ` <20130103180643.GA30277-9H3kiKr51/JHGpnEYu0o6d07Fnf2crXX0E9HWUfgJXw@public.gmane.org>
2013-01-07 11:58 ` Will Deacon
2013-01-16 0:14 ` Pratik Patel
2013-01-17 10:55 ` Will Deacon
2013-01-02 20:00 ` Jon Hunter [this message]
2013-01-03 19:32 ` Pratik Patel
2012-12-19 21:06 ` Pratik Patel
2013-02-21 14:32 ` Robert MARKLUND
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=50E491D5.3080106@ti.com \
--to=jon-hunter-l0cymroini0@public.gmane.org \
--cc=arve-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org \
--cc=christian.bejram-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org \
--cc=d-deao-l0cyMroinI0@public.gmane.org \
--cc=david.rusling-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=dsaxena-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=john.stultz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=magnus.p.persson-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org \
--cc=pratikp-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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;
as well as URLs for NNTP newsgroup(s).