From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/5] ARM: scu: Move register defines to header file
Date: Tue, 25 Jan 2011 18:06:27 +0530 [thread overview]
Message-ID: <4534e82bf14eeea9f96769df760df5ae@mail.gmail.com> (raw)
In-Reply-To: <20110125121655.GD13300@n2100.arm.linux.org.uk>
> -----Original Message-----
> From: Russell King - ARM Linux [mailto:linux at arm.linux.org.uk]
> Sent: Tuesday, January 25, 2011 5:47 PM
> To: Santosh Shilimkar
> Cc: linux-arm-kernel at lists.infradead.org; catalin.marinas at arm.com;
> ccross at android.com; linus.ml.walleij at gmail.com; linux-
> omap at vger.kernel.org
> Subject: Re: [PATCH 4/5] ARM: scu: Move register defines to header
> file
>
> On Tue, Jan 25, 2011 at 05:32:57PM +0530, Santosh Shilimkar wrote:
> > I have similar patch implemented but what it does is just
> > prepares the value to be programmed and stores it to a scratchpad.
> > I see your point but below patch may now work well. The reason is
> the SCU
> > register needs to accessed at the lowest level. May be even when
> > stack is not available. Also this register needs to be cleared in
> cases
> > where the attempted power state is failed for some reason.
>
> From the documentation I have, the power control register has no
> effect
> until the CPU enters WFI mode - which means that provided we can
> guarantee no one issues a WFI instruction between setting the power
> mode,
> and executing that instruction, being woken up (or failing) and
> resetting
> the power mode back... that shouldn't require the power mode to be
> programmed from assembly code.
>
> In any case, we actually need the help of spinlocks to deal with
> concurrent access to the SCU power control register - something you
> can't do in assembly code.
>
> On the way down to a WFI low power mode, we can call
> scu_power_mode(),
> do the rest of the cleanup (which must not schedule) and issue WFI.
> On
> the way back up, do whatever needs to be done and call
> scu_power_mode()
> to reset back to 'normal' mode.
>
Ok. I missed some information my last email.
The SCU power status programming is used to take CPU in/out
of coherency as an alternative to SMP bit. We don't
have an access to SMP bit on OMAP4. ARM has already
confirmed SCU programming is same as SMP bit enable/disable.
I don't know how safe is to use spin lock when one CPU is
goes out of coherency after programming the power state. The
spin lock release may not even be visible to other CPU.
The programming happens from IDLE or suspend where the
>
> > Also note that this register can be blocked using trust-zone which
> > again makes it platform dependent because direct write won't be
> > allowed in that case.
>
> Yes, I did notice. What's the OMAP SMC interface for that?
>
> > I would prefer the header export if there is no major
> > objection since there is already a possibility of custom
> > implementation with trust zone.
> >
> > On OMAP4, on ES1.0 we need to use a secure API to achieve
> > this where as on ES2.0, it can be directly accessed.
>
> As I say, I'd rather not have each SoC implementing access to this
> as
> someone's bound to forget the spinlock if they're dealing with more
> than
> one CPU, which'll make stuff unreliable (just like I did on my
> initial
> version.)
> We could have a callback to SoC code which does the appropriate SMC
> call,
> but first I'll need to know what's required for the SMC call.
Ok. Will try to see if things can be worked out as pet your
suggestion.
Regards,
Santosh
next prev parent reply other threads:[~2011-01-25 12:36 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-24 8:51 [PATCH 0/5] ARM: Few patches for PM enablement Santosh Shilimkar
2011-01-24 8:51 ` [PATCH 1/5] ARM: gic: Add hooks for architecture specific extensions Santosh Shilimkar
2011-01-25 3:03 ` Colin Cross
2011-01-25 20:54 ` Colin Cross
2011-01-26 7:22 ` Santosh Shilimkar
2011-01-26 7:23 ` Colin Cross
2011-01-26 7:31 ` Santosh Shilimkar
2011-01-26 7:52 ` Colin Cross
2011-01-26 7:55 ` Santosh Shilimkar
2011-01-24 8:51 ` [PATCH 2/5] ARM: gic: Add distributor and interface enable/disable accessory api Santosh Shilimkar
2011-03-01 5:58 ` Santosh Shilimkar
2011-01-24 8:51 ` [PATCH 3/5] ARM: twd: Add context save restore support Santosh Shilimkar
2011-01-24 11:06 ` Russell King - ARM Linux
2011-01-24 11:11 ` Russell King - ARM Linux
2011-01-24 11:16 ` Santosh Shilimkar
2011-01-25 7:39 ` Colin Cross
2011-01-25 10:32 ` Russell King - ARM Linux
2011-01-25 13:23 ` Thomas Gleixner
2011-01-25 13:37 ` Russell King - ARM Linux
2011-01-25 13:55 ` Santosh Shilimkar
2011-01-25 14:12 ` Thomas Gleixner
2011-01-25 14:15 ` Russell King - ARM Linux
2011-01-25 14:24 ` Thomas Gleixner
2011-01-25 16:04 ` Santosh Shilimkar
2011-01-25 16:13 ` Russell King - ARM Linux
2011-01-25 16:14 ` Santosh Shilimkar
2011-01-25 11:29 ` Russell King - ARM Linux
2011-01-25 11:40 ` Santosh Shilimkar
2011-01-25 11:48 ` Russell King - ARM Linux
2011-01-25 12:08 ` Santosh Shilimkar
2011-01-25 12:17 ` Russell King - ARM Linux
2011-01-25 12:20 ` Santosh Shilimkar
2011-01-25 18:44 ` Colin Cross
2011-01-24 11:14 ` Santosh Shilimkar
2011-01-24 8:51 ` [PATCH 4/5] ARM: scu: Move register defines to header file Santosh Shilimkar
2011-01-25 11:46 ` Russell King - ARM Linux
2011-01-25 12:02 ` Santosh Shilimkar
2011-01-25 12:16 ` Russell King - ARM Linux
2011-01-25 12:29 ` Russell King - ARM Linux
2011-01-25 12:39 ` Santosh Shilimkar
2011-01-25 12:36 ` Santosh Shilimkar [this message]
2011-01-25 12:56 ` Russell King - ARM Linux
2011-01-25 13:04 ` Russell King - ARM Linux
2011-01-25 13:06 ` Russell King - ARM Linux
2011-01-25 18:23 ` Santosh Shilimkar
2011-02-04 10:41 ` Russell King - ARM Linux
2011-02-04 10:46 ` Santosh Shilimkar
2011-02-04 11:30 ` Russell King - ARM Linux
2011-02-04 11:34 ` Santosh Shilimkar
2011-02-07 9:51 ` Santosh Shilimkar
2011-02-07 10:18 ` Russell King - ARM Linux
2011-02-07 10:21 ` Santosh Shilimkar
2011-02-07 10:23 ` Russell King - ARM Linux
2011-02-07 10:30 ` Santosh Shilimkar
2011-02-10 14:49 ` Santosh Shilimkar
2011-02-10 16:13 ` Russell King - ARM Linux
2011-02-10 16:26 ` Santosh Shilimkar
2011-01-25 13:05 ` Santosh Shilimkar
2011-01-25 13:41 ` Russell King - ARM Linux
2011-01-25 13:47 ` Santosh Shilimkar
2011-01-24 8:51 ` [PATCH 5/5] ARM: smp: Skip secondary cpu calibration to speed-up boot Santosh Shilimkar
2011-01-24 10:30 ` Russell King - ARM Linux
2011-01-24 8:51 ` Santosh Shilimkar
2011-01-24 8:55 ` Santosh Shilimkar
2011-02-04 10:19 ` [PATCH 0/5] ARM: Few patches for PM enablement Santosh Shilimkar
2011-02-11 14:24 ` Santosh Shilimkar
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=4534e82bf14eeea9f96769df760df5ae@mail.gmail.com \
--to=santosh.shilimkar@ti.com \
--cc=linux-arm-kernel@lists.infradead.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).