From: marc.zyngier@arm•com (Marc Zyngier)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH 3.17-rc4 v7 4/6] irqchip: gic: Add support for IPI FIQ
Date: Thu, 18 Sep 2014 22:46:22 +0100 [thread overview]
Message-ID: <867g10vbyp.fsf@arm.com> (raw)
In-Reply-To: <20140917185138.GX12361@n2100.arm.linux.org.uk> (Russell King's message of "Wed, 17 Sep 2014 19:51:38 +0100")
On Wed, Sep 17 2014 at 07:51:38 PM, Russell King - ARM Linux <linux@arm•linux.org.uk> wrote:
Hi Russell,
> On Wed, Sep 17, 2014 at 09:10:16AM -0700, Daniel Thompson wrote:
>> This patch provides support for arm's newly added IPI FIQ. It works
>> by placing all interrupt sources *except* IPI FIQ in group 1 and
>> then flips a configuration bit in the GIC such that group 1
>> interrupts use IRQ and group 0 interrupts use FIQ.
>>
>> All GIC hardware except GICv1-without-TrustZone support provides a means
>> to group exceptions into group 0 and group 1. However the hardware
>> functionality is unavailable to the kernel when a secure monitor is
>> present because access to the grouping registers are prohibited outside
>> "secure world" (a feature that allows grouping to be used to allow
>> hardware peripherals to send interrupts into the secure world). However
>> when grouping is not available we can rely on the GIC's RAZ/WI semantics
>> and avoid conditional code.
>
> I've been chasing a bug with this on the Versatile Express CT9x4. It
> seems that the GIC there is a GICv1, with secure extensions. It seems
> to support interrupt grouping.
>
> However, setting SPIs to group 1, with the control registers enabling
> both group 0 and group 1 (such that both groups are treated as IRQs)
> results in no SPIs being delivered to the kernel. In other words,
> setting GIC_DIST_IGROUP for SPIs, and setting both GIC_CPU_CTRL and
> GIC_DIST_CTRL to 3.
>
> This is rather worrying, because we seem to have a GIC which for all
> intents and purposes appears to be compatible with what we want to do,
> appears to conform with the GIC architecture specifications, but doesn't
> actually work.
>
> I suspect that running the Versatile Express CT9x4 in non-secure mode
> wouldn't work (because in non-secure mode, the GIC only allows access
> to group 1 interrupts.)
>
> I've added Will and Mark to this to see whether they have any comment.
I'm rather far away from my VE-A9 board (and won't be to get back to it
for another two weeks), so this is all a shot in the dark...
Can you have a look at the GICC_AIAR register (located at GICC_IAR +
0x14)? It *shouldn't* exist on this HW, assuming this is a real
GICv1. But what you describe makes me think of something like this.
Thanks,
M.
--
Jazz is not dead. It just smells funny.
next prev parent reply other threads:[~2014-09-18 21:46 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-17 16:10 [PATCH 3.17-rc4 v7 0/6] arm: Implement arch_trigger_all_cpu_backtrace Daniel Thompson
2014-09-17 16:10 ` [PATCH 3.17-rc4 v7 1/6] ARM: remove unused do_unexp_fiq() function Daniel Thompson
2014-09-17 16:10 ` [PATCH 3.17-rc4 v7 2/6] arm: fiq: Replace default FIQ handler Daniel Thompson
2014-09-17 16:10 ` [PATCH 3.17-rc4 v7 3/6] arm64: Introduce dummy version of asm/fiq.h Daniel Thompson
2014-09-22 9:16 ` Catalin Marinas
2014-09-17 16:10 ` [PATCH 3.17-rc4 v7 4/6] irqchip: gic: Add support for IPI FIQ Daniel Thompson
2014-09-17 18:51 ` Russell King - ARM Linux
2014-09-17 20:12 ` Daniel Thompson
2014-09-17 21:07 ` Russell King - ARM Linux
2014-09-18 7:48 ` Russell King - ARM Linux
2014-09-18 21:46 ` Marc Zyngier [this message]
2014-09-18 8:17 ` Russell King - ARM Linux
2014-09-18 21:20 ` Daniel Thompson
2014-09-17 16:10 ` [PATCH 3.17-rc4 v7 5/6] ARM: add basic support for on-demand backtrace of other CPUs Daniel Thompson
2014-09-17 16:10 ` [PATCH 3.17-rc4 v7 6/6] arm: smp: Handle ipi_cpu_backtrace() using FIQ (if available) Daniel Thompson
2014-10-14 22:37 ` [PATCH 3.17-rc4 v7 0/6] arm: Implement arch_trigger_all_cpu_backtrace Daniel Drake
2014-10-14 23:31 ` Russell King - ARM Linux
2014-10-16 9:33 ` Daniel Thompson
2014-11-04 17:05 ` Daniel Thompson
2014-11-04 17:19 ` Russell King - ARM Linux
2014-10-16 9:23 ` Daniel Thompson
2014-10-16 12:23 ` Russell King - ARM Linux
2014-10-16 13:15 ` Daniel Thompson
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=867g10vbyp.fsf@arm.com \
--to=marc.zyngier@arm$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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