linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Lokesh Vutla <lokeshvutla@ti.com>
To: Marc Zyngier <marc.zyngier@arm.com>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	Rob Herring <robh+dt@kernel.org>, Nishanth Menon <nm@ti.com>,
	<tglx@linutronix.de>, <jason@lakedaemon.net>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	Device Tree Mailing List <devicetree@vger.kernel.org>,
	Tony Lindgren <tony@atomide.com>,
	linus.walleij@linaro.org, Sekhar Nori <nsekhar@ti.com>,
	linux-kernel@vger.kernel.org, Tero Kristo <t-kristo@ti.com>,
	Linux ARM Mailing List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v8 00/14] Add support for TISCI Interrupt controller drivers
Date: Wed, 1 May 2019 18:53:41 +0530	[thread overview]
Message-ID: <7edd8582-ce51-60a0-24e1-c45fe6725705@ti.com> (raw)
In-Reply-To: <30f5c877-a4dc-8ad9-0ad0-c172a60dc853@arm.com>

Hi Marc,

On 01/05/19 5:28 PM, Marc Zyngier wrote:
> On 30/04/2019 11:12, Lokesh Vutla wrote:
>> TI AM65x SoC based on K3 architecture introduced support for Events
>> which are message based interrupts with minimal latency. These events
>> are not compatible with regular interrupts and are valid only through
>> an event transport lane. An Interrupt Aggregator(INTA) is introduced
>> to convert these events to interrupts. INTA can also group 64 events
>> into a single interrupt. Now the SoC has many peripherals and a large
>> number of event sources (time sync or DMA), the use of events is
>> completely dependent on a user's specific application, which drives a
>> need for maximum flexibility in which event sources are used in the
>> system. It is also completely up to software control as to how the
>> events are serviced.
>>
>> Because of the huge flexibility there are certain standard peripherals
>> (like GPIO etc)where all interrupts cannot be directly corrected to host
>> interrupt controller. For this purpose, Interrupt Router(INTR) is
>> introduced in the SoC. INTR just does a classic interrupt redirection.
>>
>> So the SoC has 3 types of interrupt controllers:
>> - GIC500
>> - Interrupt Router
>> - Interrupt Aggregator
>>
>> Below is a diagrammatic view of how SoC integration of these interrupt
>> controllers:(https://pastebin.ubuntu.com/p/9ngV3jdGj2/)
>>
>> Device Index-x               Device Index-y
>>            |                         |
>>            |                         |
>>                       ....
>>             \                       /
>>              \                     /
>>               \  (global events)  /
>>           +---------------------------+   +---------+
>>           |                           |   |         |
>>           |             INTA          |   |  GPIO   |
>>           |                           |   |         |
>>           +---------------------------+   +---------+
>>                          |   (vint)            |
>>                          |                     |
>>                         \|/                    |
>>           +---------------------------+        |
>>           |                           |<-------+
>>           |           INTR            |
>>           |                           |
>>           +---------------------------+
>>                          |
>>                          |
>>                         \|/ (gic irq)
>>           +---------------------------+
>>           |                           |
>>           |             GIC           |
>>           |                           |
>>           +---------------------------+
>>
>> While at it, TISCI abstracts the handling of all above IRQ routes where
>> interrupt sources are not directly connected to host interrupt controller.
>> That would be configuration of Interrupt Aggregator and Interrupt Router.
>>
>> This series adds support for:
>> - TISCI commands needed for IRQ configuration
>> - Interrupt Router(INTR) driver.
>> - Interrupt Aggregator(INTA) driver.
>> - Interrupt Aggregator MSI bus layer.
>>
>> Marc,
>> 	As discussed offline, the firmware changes are going to come within
>> 	a day or so. These changes are tested against local binary which is
>> 	bound to release.
>>
>> Boot Log: https://pastebin.ubuntu.com/p/YwprMKXdg4/
>>
>> Changes since v7:
>> - Rebased on top of latest master.
>> - Each patch has respective changes mentioned.
>>
>> Grygorii Strashko (1):
>>   firmware: ti_sci: Add support to get TISCI handle using of_phandle
>>
>> Lokesh Vutla (12):
>>   firmware: ti_sci: Add support for RM core ops
>>   firmware: ti_sci: Add support for IRQ management
>>   firmware: ti_sci: Add helper apis to manage resources
>>   genirq: Introduce irq_chip_{request,release}_resource_parent() apis
>>   gpio: thunderx: Use the default parent apis for
>>     {request,release}_resources
>>   dt-bindings: irqchip: Introduce TISCI Interrupt router bindings
>>   irqchip: ti-sci-intr: Add support for Interrupt Router driver
>>   dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings
>>   irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver
>>   soc: ti: Add MSI domain bus support for Interrupt Aggregator
>>   irqchip: ti-sci-inta: Add msi domain support
>>   arm64: arch_k3: Enable interrupt controller drivers
>>
>> Peter Ujfalusi (1):
>>   firmware: ti_sci: Add RM mapping table for am654
>>
>>  .../bindings/arm/keystone/ti,sci.txt          |   3 +-
>>  .../interrupt-controller/ti,sci-inta.txt      |  66 ++
>>  .../interrupt-controller/ti,sci-intr.txt      |  82 +++
>>  MAINTAINERS                                   |   6 +
>>  arch/arm64/Kconfig.platforms                  |   5 +
>>  drivers/firmware/ti_sci.c                     | 651 ++++++++++++++++++
>>  drivers/firmware/ti_sci.h                     | 102 +++
>>  drivers/gpio/gpio-thunderx.c                  |  16 +-
>>  drivers/irqchip/Kconfig                       |  23 +
>>  drivers/irqchip/Makefile                      |   2 +
>>  drivers/irqchip/irq-ti-sci-inta.c             | 615 +++++++++++++++++
>>  drivers/irqchip/irq-ti-sci-intr.c             | 275 ++++++++
>>  drivers/soc/ti/Kconfig                        |   6 +
>>  drivers/soc/ti/Makefile                       |   1 +
>>  drivers/soc/ti/ti_sci_inta_msi.c              | 146 ++++
>>  include/linux/irq.h                           |   2 +
>>  include/linux/irqdomain.h                     |   1 +
>>  include/linux/msi.h                           |  10 +
>>  include/linux/soc/ti/ti_sci_inta_msi.h        |  23 +
>>  include/linux/soc/ti/ti_sci_protocol.h        | 124 ++++
>>  kernel/irq/chip.c                             |  27 +
>>  21 files changed, 2173 insertions(+), 13 deletions(-)
>>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
>>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
>>  create mode 100644 drivers/irqchip/irq-ti-sci-inta.c
>>  create mode 100644 drivers/irqchip/irq-ti-sci-intr.c
>>  create mode 100644 drivers/soc/ti/ti_sci_inta_msi.c
>>  create mode 100644 include/linux/soc/ti/ti_sci_inta_msi.h
> 
> Lokesh,
> 
> Thanks for having respun this quickly.
> 
> I've applied the first 13 patches to irqchip-next (after tidying up some
> of the commit messages). I've left the last patch for armsoc to take,
> unless you guys insist on me taking it.

I prefer if everything goes as a single bundle, unless arm-soc maintainers
object. Want to start posting DT nodes.

> 
> If nothing horrible appears in -next tomorrow, I'll send the 5.2 PR with
> this series.

Awesome.

> 
> Hopefully we won't see more of this madness any time soon... :-/

IRQCHIP is one part of it. Fun is yet to start with DMA.

Thanks and regards,
Lokesh

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-05-01 13:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-30 10:12 [PATCH v8 00/14] Add support for TISCI Interrupt controller drivers Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 01/14] firmware: ti_sci: Add support to get TISCI handle using of_phandle Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 02/14] firmware: ti_sci: Add support for RM core ops Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 03/14] firmware: ti_sci: Add support for IRQ management Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 04/14] firmware: ti_sci: Add RM mapping table for am654 Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 05/14] firmware: ti_sci: Add helper apis to manage resources Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 06/14] genirq: Introduce irq_chip_{request, release}_resource_parent() apis Lokesh Vutla
2019-05-16 12:40   ` Linus Walleij
2019-04-30 10:12 ` [PATCH v8 07/14] gpio: thunderx: Use the default parent apis for {request, release}_resources Lokesh Vutla
2020-03-10 23:27   ` Tim Harvey
2020-03-11  4:56     ` [PATCH v8 07/14] gpio: thunderx: Use the default parent apis for {request,release}_resources Lokesh Vutla
2020-03-11 15:43     ` [PATCH v8 07/14] gpio: thunderx: Use the default parent apis for {request, release}_resources Thomas Gleixner
2020-03-11 16:09       ` Tim Harvey
2019-04-30 10:12 ` [PATCH v8 08/14] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings Lokesh Vutla
2019-04-30 22:24   ` Rob Herring
2019-04-30 10:12 ` [PATCH v8 09/14] irqchip: ti-sci-intr: Add support for Interrupt Router driver Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 10/14] dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings Lokesh Vutla
2019-04-30 22:25   ` Rob Herring
2019-04-30 10:12 ` [PATCH v8 11/14] irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 12/14] soc: ti: Add MSI domain bus support for Interrupt Aggregator Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 13/14] irqchip: ti-sci-inta: Add msi domain support Lokesh Vutla
2019-04-30 10:12 ` [PATCH v8 14/14] arm64: arch_k3: Enable interrupt controller drivers Lokesh Vutla
2019-04-30 11:45 ` [PATCH v8 00/14] Add support for TISCI Interrupt " Nishanth Menon
2019-05-01 11:58 ` Marc Zyngier
2019-05-01 13:23   ` Lokesh Vutla [this message]
2019-05-01 13:45     ` Marc Zyngier
2019-05-01 14:04       ` Tony Lindgren
2019-05-01 14:31         ` Marc Zyngier

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=7edd8582-ce51-60a0-24e1-c45fe6725705@ti.com \
    --to=lokeshvutla@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grygorii.strashko@ti.com \
    --cc=jason@lakedaemon.net \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=nm@ti.com \
    --cc=nsekhar@ti.com \
    --cc=peter.ujfalusi@ti.com \
    --cc=robh+dt@kernel.org \
    --cc=ssantosh@kernel.org \
    --cc=t-kristo@ti.com \
    --cc=tglx@linutronix.de \
    --cc=tony@atomide.com \
    /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).