linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: robherring2@gmail.com (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: arm smp support patch
Date: Thu, 11 Nov 2010 16:50:14 -0600	[thread overview]
Message-ID: <4CDC7326.2080407@gmail.com> (raw)
In-Reply-To: <20101111224656.GA23785@n2100.arm.linux.org.uk>

On 11/11/2010 04:46 PM, Russell King - ARM Linux wrote:
> On Thu, Nov 11, 2010 at 02:03:29PM -0600, Rob Herring wrote:
>> On 11/10/2010 10:41 PM, George G. Davis wrote:
>>> On Tue, Nov 09, 2010 at 01:33:20PM -1000, Scott Valentine wrote:
>>>> On arm multi-core platforms that have a gic, the secondary cores fail to
>>>> wake if they are booted in WFI mode, as the gic_dist_init disables all
>>>> interrupts including IPI. I've included a simple patch to the
>>>> gic_dist_init function that enables interrupts 0-15 on SMP enabled
>>>> systems. This patch was made against linux-2.6-HEAD-151f52f.
>>>>
>>>>
>>>> diff -uNr a/arch/arm/common/gic.c b/arch/arm/common/gic.c
>>>> --- a/arch/arm/common/gic.c     2010-11-05 15:57:04.000000000 -1000
>>>> +++ b/arch/arm/common/gic.c     2010-11-09 13:08:33.000000000 -1000
>>>> @@ -262,6 +262,13 @@
>>>>           for (i = 0; i<   max_irq; i += 32)
>>>>                   writel(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 /
>>>> 32);
>>>>
>>>> +#ifdef CONFIG_SMP
>>>> +       /*
>>>> +        * Enable IPI interrupts on SMP systems so we can wake secondary
>>>> cores
>>>> +        */
>>>> +       writel(0x0000ffff, base + GIC_DIST_ENABLE_SET);
>>>
>>> The ARM11 MPCore TRM [1] states "Interrupts 0-15 fields are read as one,
>>> that is, always enabled, and write to these fields have no effect."  So
>>> it seems odd that this is needed.  Errata?  FWIW, I've peeked and poked
>>> at GIC_DIST_ENABLE_SET and GIC_DIST_ENABLE_CLEAR via a debugger and the
>>> 16 LSBs of both of these registers are stuck-at-one on my ARM11 MPCore
>>> r1p0.
>>>
>> The GIC arch spec states these bits are implementation defined. However,
>> this register is also banked for SMP. So you cannot enable the interrupt
>> for other cores from the primary core.
>
> Can you point out the ARM doc number/section which specifies that.
>
> My GIC TRM (which may be outdated) shows that although the SGI interrupt
> (0:15) enable register is banked, it goes on to say "The distributor does
> not provide registers for INTIDs<  16 because SGIs are always enabled".
>

Section 4.3.5:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0048a/index.html

Rob

  reply	other threads:[~2010-11-11 22:50 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-09 23:33 arm smp support patch Scott Valentine
2010-11-10 11:21 ` Sergei Shtylyov
2010-11-10 20:37   ` Scott Valentine
2010-11-11 11:36     ` Sergei Shtylyov
2010-11-11  4:41 ` George G. Davis
2010-11-11 20:03   ` Rob Herring
2010-11-11 21:16     ` Scott Valentine
2010-11-11 22:46     ` Russell King - ARM Linux
2010-11-11 22:50       ` Rob Herring [this message]
2010-11-11 23:02         ` Russell King - ARM Linux
2010-11-11 21:02   ` Scott Valentine
2010-11-11 21:44     ` Abhijeet Dharmapurikar
2010-11-11 23:06       ` Russell King - ARM Linux
2010-11-11 23:29         ` Russell King - ARM Linux
2010-11-12  0:13           ` Abhijeet Dharmapurikar
2010-11-16  7:27         ` Scott Valentine

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=4CDC7326.2080407@gmail.com \
    --to=robherring2@gmail.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).