From: Marc Zyngier <marc.zyngier@arm.com>
To: David Daney <ddaney@caviumnetworks.com>
Cc: Jason Cooper <jason@lakedaemon.net>,
David Daney <david.daney@cavium.com>,
Catalin Marinas <Catalin.Marinas@arm.com>,
Will Deacon <Will.Deacon@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Robert Richter <rrichter@cavium.com>,
David Daney <ddaney.cavm@gmail.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 4/5] irqchip: gic-v3: Add gic_get_irq_domain() to get the irqdomain of the GIC.
Date: Thu, 16 Jul 2015 18:32:28 +0100 [thread overview]
Message-ID: <55A7EAAC.8000800@arm.com> (raw)
In-Reply-To: <55A7E663.9030000@caviumnetworks.com>
On 16/07/15 18:14, David Daney wrote:
> On 07/16/2015 10:09 AM, Marc Zyngier wrote:
>> On 16/07/15 17:50, David Daney wrote:
> [...]
>>>> Patch 5 has established that you're using "virtual wire" SPIs, so we
>>>> need to work on exposing that with the normal kernel abstraction, and
>>>> not by messing with the internals of the GIC.
>>>>
>>>
>>> Agreed.
>>>
>>> The MSI system has pci_enable_msix()/pci_disable_msix().
>>>
>>> I would propose something like:
>>>
>>> struct gic_spi_entry {
>>> int spi /* SPI number */
>>> int irq; /* kernel irq number mapped to the spi*/
>>> u32 msg; /* message to be written */
>>> u64 assert_addr;
>>> u64 deassert_addr;
>>> };
>>>
>>> /* Fill in the SPI processing information */
>>> int gic_map_spi(int spi, struct gic_spi_entry *data);
>>
>> Neither.
>>
>> The way to do it is to make this a *separate* IRQ domain stacked onto
>> the SPI domain. No funky hook on the side. If it doesn't go through the
>> normal kernel API, it doesn't reach the GIC.
>
> Yes, the irqdomain does handle mapping SPI -> irq, and the message can
> be derived from the SPI. However, the irqdomain infrastructure cannot
> supply values for either assert_addr or deassert_addr.
This is why I suggested earlier (in my reply to patch 5) that you have a
look at the series I posted a couple of days ago to implement non-PCI
MSI support. This would allow you to compose the domains as such:
platform-MSI -> message-SPI -> GIC
You'd end up with a msi_msg containing the GICD_SETSPI_NSR doorbell, and
the SPI as a payload.
> Those are needed in order to use SPI. How would you suggest that they
> be obtained?
Two possibilities: either you derive GICD_CLRSPI_NSR by adding 8 to the
doorbell you got from the msi_msg structure (ugly, but limited to your
own code), or you extend msi_msg to cater for this case.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2015-07-16 17:32 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-15 16:54 [PATCH 0/5] arm64, pci: Add ECAM/PCIe support for Cavium ThunderX David Daney
2015-07-15 16:54 ` [PATCH 1/5] pci: Add is_pcierc element to struct pci_bus David Daney
2015-07-15 16:54 ` [PATCH 2/5] gic-its: Allow pci_requester_id to be overridden David Daney
2015-07-15 17:30 ` Marc Zyngier
2015-08-20 14:11 ` Pavel Fedin
2015-08-20 15:23 ` David Daney
2015-08-25 11:01 ` Pavel Fedin
2015-07-15 16:54 ` [PATCH 3/5] arm64, pci: Allow RC drivers to supply pcibios_add_device() implementation David Daney
2015-07-16 9:04 ` Lorenzo Pieralisi
2015-07-16 17:00 ` David Daney
2015-07-17 11:00 ` Lorenzo Pieralisi
2015-07-17 16:38 ` David Daney
2015-07-17 17:15 ` Mark Rutland
2015-07-15 16:54 ` [PATCH 4/5] irqchip: gic-v3: Add gic_get_irq_domain() to get the irqdomain of the GIC David Daney
2015-07-15 17:12 ` Marc Zyngier
2015-07-15 18:57 ` David Daney
2015-07-16 7:38 ` Marc Zyngier
2015-07-16 16:50 ` David Daney
2015-07-16 17:09 ` Marc Zyngier
2015-07-16 17:14 ` David Daney
2015-07-16 17:32 ` Marc Zyngier [this message]
2015-07-17 6:45 ` Marc Zyngier
2015-07-15 16:54 ` [PATCH 5/5] PCI: Add host drivers for Cavium ThunderX processors David Daney
2015-07-15 17:44 ` Mark Rutland
2015-07-15 17:48 ` Marc Zyngier
2015-07-16 8:31 ` Paul Bolle
2015-07-16 16:52 ` David Daney
2015-07-16 13:06 ` Lorenzo Pieralisi
2015-07-17 12:12 ` Arnd Bergmann
2015-07-15 17:07 ` [PATCH 0/5] arm64, pci: Add ECAM/PCIe support for Cavium ThunderX Mark Rutland
2015-07-15 17:29 ` Will Deacon
2015-07-16 17:25 ` Thomas Gleixner
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=55A7EAAC.8000800@arm.com \
--to=marc.zyngier@arm.com \
--cc=Catalin.Marinas@arm.com \
--cc=Will.Deacon@arm.com \
--cc=bhelgaas@google.com \
--cc=david.daney@cavium.com \
--cc=ddaney.cavm@gmail.com \
--cc=ddaney@caviumnetworks.com \
--cc=jason@lakedaemon.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rrichter@cavium.com \
--cc=tglx@linutronix.de \
/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