All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stuart MENEFY <stuart.menefy@st.com>
To: Will Deacon <will.deacon@arm.com>
Cc: Dave Martin <dave.martin@linaro.org>,
	Srinivas KANDAGATLA <srinivas.kandagatla@st.com>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Grant Likely <grant.likely@secretlab.ca>,
	Jiri Slaby <jslaby@suse.cz>,
	"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Nicolas Pitre <nico@linaro.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
	Jason Cooper <jason@lakedaemon.net>,
	Arnd Bergmann <arnd@arndb.de>,
	Marc Zyngier <Marc.Zyngier@arm.com>,
	"devicetree-discuss@lists.ozlabs.org"
	<devicetree-discuss@lists.ozlabs.org>,
	"rob.herring@calxeda.com" <rob.herring@calxeda.com>,
	Stephen Warren <swarren@nvidia.com>,
	Dong Aisheng <dong.aisheng@linaro.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Greg
Subject: Re: [RFC 2/8] ARM:global_timer: Add ARM global timer support.
Date: Wed, 08 May 2013 16:48:31 +0100	[thread overview]
Message-ID: <518A73CF.8000309@st.com> (raw)
In-Reply-To: <20130508144907.GB20820@mudshark.cambridge.arm.com>

On 08/05/13 15:49, Will Deacon wrote:
> On Wed, May 08, 2013 at 03:38:22PM +0100, Arnd Bergmann wrote:
>> On Wednesday 08 May 2013, Srinivas KANDAGATLA wrote:
>>> From: Stuart Menefy <stuart.menefy@st.com>
>>>
>>> This is a simple driver for the global timer module found in the Cortex
>>> A9-MP cores from revision r1p0 onwards. This should be able to perform
>>> the functions of the system timer and the local timer in an SMP system.
>>>
>>> The global timer has the following features:
>>>     The global timer is a 64-bit incrementing counter with an
>>> auto-incrementing feature. It continues incrementing after sending
>>> interrupts. The global timer is memory mapped in the private memory
>>> region.
>>>     The global timer is accessible to all Cortex-A9 processors in the
>>> cluster. Each Cortex-A9 processor has a private 64-bit comparator that
>>> is used to assert a private interrupt when the global timer has reached
>>> the comparator value. All the Cortex-A9 processors in a design use the
>>> banked ID, ID27, for this interrupt. ID27 is sent to the Interrupt
>>> Controller as a Private Peripheral Interrupt. The global timer is
>>> clocked by PERIPHCLK.
>>>
>>> Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
>>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
>>>
>>
>> Are you sure we don't already have a driver for this? It sounds unlikely
>> that you are the first one to do this when the hardware is so common.
> 
> An additional reason why people don't make use of this timer (on top of the
> power domain concerns raised by Rob) is due to the following from the A9
> TRM:
> 
>   `From r2p0 the comparators for each processor with the global timer fire
>    when the timer value is greater than or equal to. In previous revisions
>    the comparators fired when the timer value was equal to.'
> 
> So you'll get into all sorts of horrible races on those older revisions if
> you're not careful.

Fortunately the earliest version of these SoCs uses r2p2, so we avoided that
particular issue. But as the code doesn't attempt to work around these
problems a check on the version number might be a good idea to prevent other
people accidentally hitting it.

Stuart

WARNING: multiple messages have this Message-ID (diff)
From: stuart.menefy@st.com (Stuart MENEFY)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 2/8] ARM:global_timer: Add ARM global timer support.
Date: Wed, 08 May 2013 16:48:31 +0100	[thread overview]
Message-ID: <518A73CF.8000309@st.com> (raw)
In-Reply-To: <20130508144907.GB20820@mudshark.cambridge.arm.com>

On 08/05/13 15:49, Will Deacon wrote:
> On Wed, May 08, 2013 at 03:38:22PM +0100, Arnd Bergmann wrote:
>> On Wednesday 08 May 2013, Srinivas KANDAGATLA wrote:
>>> From: Stuart Menefy <stuart.menefy@st.com>
>>>
>>> This is a simple driver for the global timer module found in the Cortex
>>> A9-MP cores from revision r1p0 onwards. This should be able to perform
>>> the functions of the system timer and the local timer in an SMP system.
>>>
>>> The global timer has the following features:
>>>     The global timer is a 64-bit incrementing counter with an
>>> auto-incrementing feature. It continues incrementing after sending
>>> interrupts. The global timer is memory mapped in the private memory
>>> region.
>>>     The global timer is accessible to all Cortex-A9 processors in the
>>> cluster. Each Cortex-A9 processor has a private 64-bit comparator that
>>> is used to assert a private interrupt when the global timer has reached
>>> the comparator value. All the Cortex-A9 processors in a design use the
>>> banked ID, ID27, for this interrupt. ID27 is sent to the Interrupt
>>> Controller as a Private Peripheral Interrupt. The global timer is
>>> clocked by PERIPHCLK.
>>>
>>> Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
>>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
>>>
>>
>> Are you sure we don't already have a driver for this? It sounds unlikely
>> that you are the first one to do this when the hardware is so common.
> 
> An additional reason why people don't make use of this timer (on top of the
> power domain concerns raised by Rob) is due to the following from the A9
> TRM:
> 
>   `From r2p0 the comparators for each processor with the global timer fire
>    when the timer value is greater than or equal to. In previous revisions
>    the comparators fired when the timer value was equal to.'
> 
> So you'll get into all sorts of horrible races on those older revisions if
> you're not careful.

Fortunately the earliest version of these SoCs uses r2p2, so we avoided that
particular issue. But as the code doesn't attempt to work around these
problems a check on the version number might be a good idea to prevent other
people accidentally hitting it.

Stuart

  reply	other threads:[~2013-05-08 15:48 UTC|newest]

Thread overview: 194+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-08 14:09 [RFC 0/8] ARM:STiH41x: Add STiH41x platform and board support Srinivas KANDAGATLA
2013-05-08 14:09 ` Srinivas KANDAGATLA
2013-05-08 14:11 ` [RFC 2/8] ARM:global_timer: Add ARM global timer support Srinivas KANDAGATLA
2013-05-08 14:11   ` Srinivas KANDAGATLA
2013-05-08 14:26   ` Rob Herring
2013-05-08 14:26     ` Rob Herring
2013-05-08 14:26     ` Rob Herring
2013-05-08 15:06     ` Stuart MENEFY
2013-05-08 15:06       ` Stuart MENEFY
2013-05-08 15:06       ` Stuart MENEFY
2013-05-08 14:38   ` Arnd Bergmann
2013-05-08 14:38     ` Arnd Bergmann
2013-05-08 14:38     ` Arnd Bergmann
     [not found]     ` <201305081638.23100.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 14:49       ` Will Deacon
2013-05-08 14:49         ` Will Deacon
2013-05-08 15:48         ` Stuart MENEFY [this message]
2013-05-08 15:48           ` Stuart MENEFY
     [not found]           ` <518A73CF.8000309-qxv4g6HH51o@public.gmane.org>
2013-05-08 16:23             ` Arnd Bergmann
2013-05-08 16:23               ` Arnd Bergmann
2013-05-08 14:51     ` Steffen Trumtrar
2013-05-08 14:51       ` Steffen Trumtrar
2013-05-09 14:07     ` Srinivas KANDAGATLA
2013-05-09 14:07       ` Srinivas KANDAGATLA
2013-05-09 14:07       ` Srinivas KANDAGATLA
2013-05-09 14:51       ` Arnd Bergmann
2013-05-09 14:51         ` Arnd Bergmann
2013-05-09 14:51         ` Arnd Bergmann
2013-05-09 14:51         ` Srinivas KANDAGATLA
2013-05-09 14:51           ` Srinivas KANDAGATLA
2013-05-09 14:51           ` Srinivas KANDAGATLA
     [not found]   ` <1368022260-2197-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-13 19:05     ` Linus Walleij
2013-05-13 19:05       ` Linus Walleij
     [not found]       ` <CACRpkdZCP=w=4Q3bnuMQxm=Oe-uZke+Cc5NgddM5vsQbgr9E-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-13 19:30         ` Thomas Gleixner
2013-05-13 19:30           ` Thomas Gleixner
2013-05-14  8:46         ` Srinivas KANDAGATLA
2013-05-14  8:46           ` Srinivas KANDAGATLA
     [not found]           ` <5191F9EE.6070008-qxv4g6HH51o@public.gmane.org>
2013-05-14  9:23             ` Linus Walleij
2013-05-14  9:23               ` Linus Walleij
     [not found]               ` <CACRpkdYh72hQHSK-a9r8R9qfnQv06412YqVNeYpc_rZhMeiXww-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-14 10:26                 ` Srinivas KANDAGATLA
2013-05-14 10:26                   ` Srinivas KANDAGATLA
2013-05-08 14:11 ` [RFC 3/8] mfd:syscon: Introduce claim/read/write/release APIs Srinivas KANDAGATLA
2013-05-08 14:11   ` Srinivas KANDAGATLA
2013-05-08 14:50   ` Arnd Bergmann
2013-05-08 14:50     ` Arnd Bergmann
2013-05-08 14:50     ` Arnd Bergmann
2013-05-08 15:01     ` Mark Brown
2013-05-08 15:01       ` Mark Brown
2013-05-08 15:01       ` Mark Brown
2013-05-08 17:42       ` Srinivas KANDAGATLA
2013-05-08 17:42         ` Srinivas KANDAGATLA
2013-05-08 17:42         ` Srinivas KANDAGATLA
     [not found]         ` <518A8E6C.6070907-qxv4g6HH51o@public.gmane.org>
2013-05-09  9:51           ` Mark Brown
2013-05-09  9:51             ` Mark Brown
2013-05-09  9:51             ` Mark Brown
2013-05-09 11:58             ` Srinivas KANDAGATLA
2013-05-09 11:58               ` Srinivas KANDAGATLA
2013-05-09 11:58               ` Srinivas KANDAGATLA
2013-05-09 13:26               ` Mark Brown
2013-05-09 13:26                 ` Mark Brown
2013-05-09 13:26                 ` Mark Brown
     [not found]                 ` <20130509132600.GA3200-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-05-09 14:00                   ` Srinivas KANDAGATLA
2013-05-09 14:00                     ` Srinivas KANDAGATLA
2013-05-09 14:00                     ` Srinivas KANDAGATLA
2013-05-09 14:40                     ` Mark Brown
2013-05-09 14:40                       ` Mark Brown
2013-05-09 14:40                       ` Mark Brown
2013-05-09 14:47                       ` Srinivas KANDAGATLA
2013-05-09 14:47                         ` Srinivas KANDAGATLA
2013-05-09 14:47                         ` Srinivas KANDAGATLA
2013-05-10 12:51             ` Srinivas KANDAGATLA
2013-05-10 12:51               ` Srinivas KANDAGATLA
2013-05-10 12:51               ` Srinivas KANDAGATLA
2013-05-08 17:32     ` Srinivas KANDAGATLA
2013-05-08 17:32       ` Srinivas KANDAGATLA
2013-05-08 17:32       ` Srinivas KANDAGATLA
     [not found]       ` <518A8C1D.3090600-qxv4g6HH51o@public.gmane.org>
2013-05-08 19:48         ` Arnd Bergmann
2013-05-08 19:48           ` Arnd Bergmann
2013-05-08 19:48           ` Arnd Bergmann
2013-05-09 10:17           ` Srinivas KANDAGATLA
2013-05-09 10:17             ` Srinivas KANDAGATLA
2013-05-09 10:17             ` Srinivas KANDAGATLA
     [not found]             ` <518B77C1.70107-qxv4g6HH51o@public.gmane.org>
2013-05-17 14:36               ` Arnd Bergmann
2013-05-17 14:36                 ` Arnd Bergmann
2013-05-17 14:36                 ` Arnd Bergmann
2013-05-20 12:48                 ` Srinivas KANDAGATLA
2013-05-20 12:48                   ` Srinivas KANDAGATLA
2013-05-20 12:48                   ` Srinivas KANDAGATLA
2013-05-23 21:44                   ` Arnd Bergmann
2013-05-23 21:44                     ` Arnd Bergmann
2013-05-23 21:44                     ` Arnd Bergmann
2013-05-24 16:06                     ` Srinivas KANDAGATLA
2013-05-24 16:06                       ` Srinivas KANDAGATLA
2013-05-24 16:06                       ` Srinivas KANDAGATLA
     [not found]     ` <201305081650.23264.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 19:41       ` Re[2]: " Alexander Shiyan
     [not found] ` <1368022187-1633-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-08 14:10   ` [RFC 1/8] serial:st-asc: Add ST ASC driver Srinivas KANDAGATLA
2013-05-08 14:34     ` Arnd Bergmann
2013-05-08 14:34       ` Arnd Bergmann
2013-05-08 14:34       ` Arnd Bergmann
2013-05-08 14:39       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 14:39         ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 18:18         ` Srinivas KANDAGATLA
2013-05-08 18:18           ` Srinivas KANDAGATLA
2013-05-08 18:18           ` Srinivas KANDAGATLA
2013-05-08 19:55           ` Arnd Bergmann
2013-05-08 19:55             ` Arnd Bergmann
     [not found]       ` <201305081634.43498.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 15:34         ` Greg KH
2013-05-08 15:34           ` Greg KH
     [not found]           ` <20130508153459.GA17186-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-05-08 15:40             ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 15:40               ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 15:40               ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 15:53               ` Greg KH
2013-05-08 15:53                 ` Greg KH
2013-05-08 16:03                 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:03                   ` Jean-Christophe PLAGNIOL-VILLARD
     [not found]                   ` <B5A00B86-5332-427E-A82A-5B71EC0979A8-sclMFOaUSTBWk0Htik3J/w@public.gmane.org>
2013-05-08 16:15                     ` Greg KH
2013-05-08 16:15                       ` Greg KH
2013-05-08 16:15                       ` Greg KH
2013-05-08 16:31                       ` Arnd Bergmann
2013-05-08 16:31                         ` Arnd Bergmann
2013-05-08 16:36                         ` Greg KH
2013-05-08 16:36                           ` Greg KH
2013-05-10 23:29                           ` Russell King - ARM Linux
2013-05-10 23:29                             ` Russell King - ARM Linux
2013-05-08 16:39                         ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:39                           ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:45                         ` Nicolas Pitre
2013-05-08 16:45                           ` Nicolas Pitre
     [not found]                           ` <alpine.LFD.2.03.1305081239260.13109-hIgblCxmbi8OMTOF05IoTw@public.gmane.org>
2013-05-08 18:35                             ` Arnd Bergmann
2013-05-08 18:35                               ` Arnd Bergmann
2013-05-08 18:35                               ` Arnd Bergmann
2013-05-09 13:36                               ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-09 13:36                                 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:10           ` Stephen GALLIMORE
2013-05-08 16:10             ` Stephen GALLIMORE
2013-05-08 16:10             ` Stephen GALLIMORE
2013-05-10 13:50           ` Stephen GALLIMORE
2013-05-10 14:08             ` Greg KH
2013-05-10 14:45           ` Ben Dooks
2013-05-10 14:45             ` Ben Dooks
     [not found]             ` <518D07FB.7010606-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2013-05-10 15:23               ` Greg KH
2013-05-10 15:23                 ` Greg KH
2013-05-10 15:31                 ` Ben Dooks
2013-05-10 15:31                   ` Ben Dooks
2013-05-10 15:40                 ` Stuart MENEFY
2013-05-10 15:40                   ` Stuart MENEFY
2013-05-08 18:02       ` Srinivas KANDAGATLA
2013-05-08 18:02         ` Srinivas KANDAGATLA
2013-05-08 18:02         ` Srinivas KANDAGATLA
2013-05-20 11:49       ` Stephen GALLIMORE
2013-05-22 15:13         ` Arnd Bergmann
2013-05-23 16:26           ` Stephen GALLIMORE
2013-05-08 14:11   ` [RFC 4/8] pinctrl:stixxxx: Add pinctrl and pinconf support Srinivas KANDAGATLA
     [not found]     ` <1368022284-2283-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-08 15:06       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 15:06         ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 15:06         ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:27         ` Srinivas KANDAGATLA
2013-05-08 16:27           ` Srinivas KANDAGATLA
     [not found]           ` <518A7CFD.1010602-qxv4g6HH51o@public.gmane.org>
2013-05-08 16:38             ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:38               ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:38               ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 14:12   ` [RFC 7/8] ARM:stih41x: Add B2000 board support Srinivas KANDAGATLA
2013-05-08 14:12     ` Srinivas KANDAGATLA
     [not found]     ` <1368022329-2424-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-08 16:20       ` Arnd Bergmann
2013-05-08 16:20         ` Arnd Bergmann
2013-05-08 16:20         ` Arnd Bergmann
     [not found]         ` <201305081820.23968.arnd-r2nGTMty4D4@public.gmane.org>
2013-05-08 16:24           ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:24             ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:24             ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 17:04         ` Srinivas KANDAGATLA
2013-05-08 17:04           ` Srinivas KANDAGATLA
2013-05-08 17:04           ` Srinivas KANDAGATLA
2013-05-08 14:11 ` =?y?q?=5BRFC=205/8=5D=20ARM=3Astih41x=3A=20Add=20STiH415=20SOC=20support?= Srinivas KANDAGATLA
2013-05-08 14:11   ` =?y?q?=5BRFC=205/8=5D=20ARM=3Astih41x=3A=20Add=20STiH415=20SOC=20support?= Srinivas KANDAGATLA
2013-05-08 16:18   ` [RFC 5/8] ARM:stih41x: Add STiH415 SOC support Arnd Bergmann
2013-05-08 16:18     ` Arnd Bergmann
2013-05-08 16:18     ` Arnd Bergmann
2013-05-08 16:21     ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:21       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:21       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-08 16:50     ` Stephen GALLIMORE
2013-05-08 16:50       ` Stephen GALLIMORE
2013-05-08 18:55       ` Arnd Bergmann
2013-05-08 18:55         ` Arnd Bergmann
2013-05-09 11:09         ` Stephen GALLIMORE
2013-05-09 11:09           ` Stephen GALLIMORE
2013-05-08 17:03     ` Srinivas KANDAGATLA
2013-05-08 17:03       ` Srinivas KANDAGATLA
2013-05-08 17:03       ` Srinivas KANDAGATLA
2013-05-08 14:11 ` [RFC 6/8] ARM:stih41x: Add STiH416 " Srinivas KANDAGATLA
2013-05-08 14:11   ` Srinivas KANDAGATLA
     [not found]   ` <1368022318-2380-1-git-send-email-srinivas.kandagatla-qxv4g6HH51o@public.gmane.org>
2013-05-15 19:41     ` Linus Walleij
2013-05-15 19:41       ` Linus Walleij
2013-05-08 14:12 ` [RFC 8/8] ARM:stih41x: Add B2020 board support Srinivas KANDAGATLA
2013-05-08 14:12   ` Srinivas KANDAGATLA

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=518A73CF.8000309@st.com \
    --to=stuart.menefy@st.com \
    --cc=Marc.Zyngier@arm.com \
    --cc=arnd@arndb.de \
    --cc=dave.martin@linaro.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dong.aisheng@linaro.org \
    --cc=grant.likely@secretlab.ca \
    --cc=jason@lakedaemon.net \
    --cc=jslaby@suse.cz \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=nico@linaro.org \
    --cc=rob.herring@calxeda.com \
    --cc=sameo@linux.intel.com \
    --cc=srinivas.kandagatla@st.com \
    --cc=swarren@nvidia.com \
    --cc=viresh.kumar@linaro.org \
    --cc=will.deacon@arm.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.