FSL MPIC supports 16 bit vectors so our vector number space isn't
restricted to 256 vectors. We should use the MPIC_LARG_VECTORS flag
while intializing the MPIC. This also prevents us from eating in to
hardware vector number space (MSIs) while setting up internal sources.
Signed-off-by: Varun Sethi <redacted>
---
arch/powerpc/sysdev/mpic.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
From: Kumar Gala <hidden> Date: 2012-03-27 13:30:50
On Mar 27, 2012, at 7:15 AM, Varun Sethi wrote:
FSL MPIC supports 16 bit vectors so our vector number space isn't
restricted to 256 vectors. We should use the MPIC_LARG_VECTORS flag
while intializing the MPIC. This also prevents us from eating in to=20
hardware vector number space (MSIs) while setting up internal sources.
What is driving this change? The commit message isn't quite correct as =
MPIC_LARGE_VECTORS is about the # of IRQs, not the fact that vector =
field is 16-bits.
-----Original Message-----
From: Kumar Gala [mailto:galak@kernel.crashing.org]
Sent: Tuesday, March 27, 2012 7:01 PM
To: Sethi Varun-B16395
Cc: Linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 2/4] powerpc/mpic: Use the MPIC_LARGE_VECTORS flag
for FSL MPIC.
=20
=20
On Mar 27, 2012, at 7:15 AM, Varun Sethi wrote:
=20
quoted
FSL MPIC supports 16 bit vectors so our vector number space isn't
restricted to 256 vectors. We should use the MPIC_LARG_VECTORS flag
while intializing the MPIC. This also prevents us from eating in to
hardware vector number space (MSIs) while setting up internal sources.
=20
What is driving this change? The commit message isn't quite correct as
MPIC_LARGE_VECTORS is about the # of IRQs, not the fact that vector field
is 16-bits.
=20
[Sethi Varun-B16395] We derive the internal interrupt source vector numbers=
from the
number of supported hardware interrupt sources. With the current value of 2=
56
we end up using vector numbers (for internal sources) corresponding to actu=
al hardware
interrupts. With the MPIC_LARGE_VECTORS flag we can avoid eating in to hard=
ware vector
number space.
-Varun
From: Stuart Yoder <hidden> Date: 2012-03-27 15:21:28
On Tue, Mar 27, 2012 at 8:30 AM, Kumar Gala [off-list ref] wrote:
On Mar 27, 2012, at 7:15 AM, Varun Sethi wrote:
quoted
FSL MPIC supports 16 bit vectors so our vector number space isn't
restricted to 256 vectors. We should use the MPIC_LARG_VECTORS flag
while intializing the MPIC. This also prevents us from eating in to
hardware vector number space (MSIs) while setting up internal sources.
What is driving this change?
Whats driving the change is proper handling of error interrupts. Right
now error interrupts (muxed on int 16) are treated as a shared
interrupt source. We want each to be handled as a individual interrupt
source...thus the desire to support more than 256 interrupts.
Stuart
From: Scott Wood <hidden> Date: 2012-03-27 18:44:32
On 03/27/2012 10:21 AM, Stuart Yoder wrote:
On Tue, Mar 27, 2012 at 8:30 AM, Kumar Gala [off-list ref] wrote:
quoted
On Mar 27, 2012, at 7:15 AM, Varun Sethi wrote:
quoted
FSL MPIC supports 16 bit vectors so our vector number space isn't
restricted to 256 vectors. We should use the MPIC_LARG_VECTORS flag
while intializing the MPIC. This also prevents us from eating in to
hardware vector number space (MSIs) while setting up internal sources.
What is driving this change?
Whats driving the change is proper handling of error interrupts. Right
now error interrupts (muxed on int 16) are treated as a shared
interrupt source. We want each to be handled as a individual interrupt
source...thus the desire to support more than 256 interrupts.
We don't actually need more than 256 interrupts for this (the individual
error interrupts are not counted against this). But unless we change
how vectors are allocated, we need vectors >= 256, since we have MSIs
close enough to 256 that under the current scheme the IPIs, timers, and
such collide with the third MSI bank.
-Scott
From: Scott Wood <hidden> Date: 2012-03-27 18:47:26
On 03/27/2012 01:44 PM, Scott Wood wrote:
On 03/27/2012 10:21 AM, Stuart Yoder wrote:
quoted
On Tue, Mar 27, 2012 at 8:30 AM, Kumar Gala [off-list ref] wrote:
quoted
On Mar 27, 2012, at 7:15 AM, Varun Sethi wrote:
quoted
FSL MPIC supports 16 bit vectors so our vector number space isn't
restricted to 256 vectors. We should use the MPIC_LARG_VECTORS flag
while intializing the MPIC. This also prevents us from eating in to
hardware vector number space (MSIs) while setting up internal sources.
What is driving this change?
Whats driving the change is proper handling of error interrupts. Right
now error interrupts (muxed on int 16) are treated as a shared
interrupt source. We want each to be handled as a individual interrupt
source...thus the desire to support more than 256 interrupts.
We don't actually need more than 256 interrupts for this (the individual
error interrupts are not counted against this). But unless we change
how vectors are allocated, we need vectors >= 256, since we have MSIs
close enough to 256 that under the current scheme the IPIs, timers, and
such collide with the third MSI bank.
Sorry, I misremembered -- the error interrupts do count against the 256,
but only for Linux IRQ numbering purposes (not hardware vector assignment).
-Scott
From: Scott Wood <hidden> Date: 2012-03-27 19:16:25
On 03/27/2012 01:44 PM, Scott Wood wrote:
On 03/27/2012 10:21 AM, Stuart Yoder wrote:
quoted
On Tue, Mar 27, 2012 at 8:30 AM, Kumar Gala [off-list ref] wrote:
quoted
On Mar 27, 2012, at 7:15 AM, Varun Sethi wrote:
quoted
FSL MPIC supports 16 bit vectors so our vector number space isn't
restricted to 256 vectors. We should use the MPIC_LARG_VECTORS flag
while intializing the MPIC. This also prevents us from eating in to
hardware vector number space (MSIs) while setting up internal sources.
What is driving this change?
Whats driving the change is proper handling of error interrupts. Right
now error interrupts (muxed on int 16) are treated as a shared
interrupt source. We want each to be handled as a individual interrupt
source...thus the desire to support more than 256 interrupts.
We don't actually need more than 256 interrupts for this (the individual
error interrupts are not counted against this). But unless we change
how vectors are allocated, we need vectors >= 256, since we have MSIs
close enough to 256 that under the current scheme the IPIs, timers, and
such collide with the third MSI bank.
Note that this is the case today even without the error interrupt stuff
-- the highest vector used by MSIs on MPIC 4.1 is 0xf7, and we have 13
special vectors (4 IPIs, 8 timers, and spurious).
-Scott