From: David Daney <ddaney.cavm-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Andrew Bresticker <abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: Ralf Baechle <ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Ian Campbell
<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
Jeffrey Deans
<jeffrey.deans-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
Markos Chandras
<markos.chandras-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
Paul Burton <paul.burton-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 03/12] of: Add binding document for MIPS GIC
Date: Tue, 02 Sep 2014 10:27:35 -0700 [thread overview]
Message-ID: <5405FE07.4030400@gmail.com> (raw)
In-Reply-To: <1409350479-19108-4-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
On 08/29/2014 03:14 PM, Andrew Bresticker wrote:
> The Global Interrupt Controller (GIC) present on certain MIPS systems
> can be used to route external interrupts to individual VPEs and CPU
> interrupt vectors. It also supports a timer and software-generated
> interrupts.
>
> Signed-off-by: Andrew Bresticker <abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
> ---
> Documentation/devicetree/bindings/mips/gic.txt | 50 ++++++++++++++++++++++++++
> 1 file changed, 50 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mips/gic.txt
>
> diff --git a/Documentation/devicetree/bindings/mips/gic.txt b/Documentation/devicetree/bindings/mips/gic.txt
> new file mode 100644
> index 0000000..725f1ef
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mips/gic.txt
> @@ -0,0 +1,50 @@
> +MIPS Global Interrupt Controller (GIC)
> +
> +The MIPS GIC routes external interrupts to individual VPEs and IRQ pins.
> +It also supports a timer and software-generated interrupts which can be
> +used as IPIs.
> +
> +Required properties:
> +- compatible : Should be "mti,global-interrupt-controller"
> +- reg : Base address and length of the GIC registers.
> +- interrupts : Core interrupts to which the GIC may route external interrupts.
This doesn't make sense to me. The GIC can, and does, route interrupts
to all CPU cores in a SMP system. How can there be a concept of only
associating it with several interrupt lines on a single CPU in the
system? That is not what the GIC does, is it? It is a Global
interrupts controller, not local. So specifying device tree bindings
that don't show its Global nature seems wrong.
> +- interrupt-controller : Identifies the node as an interrupt controller
> +- #interrupt-cells : Specifies the number of cells needed to encode an
> + interrupt specifier. Should be 3.
> + - The first cell is the GIC interrupt number.
> + - The second cell encodes the interrupt flags.
> + See <include/dt-bindings/interrupt-controller/irq.h> for a list of valid
> + flags.
> + - The optional third cell indicates which CPU interrupt vector the GIC
> + interrupt should be routed to. It is a 0-based index into the list of
> + GIC-to-CPU interrupts specified in the "interrupts" property described
> + above. For example, a '2' in this cell will route the interrupt to the
> + 3rd core interrupt listed in 'interrupts'. If omitted, the interrupt will
> + be routed to the 1st core interrupt.
> +
This seems like a really convoluted way of doing things that really goes
against the device tree model.
The routing of interrupts through the GIC to a core interrupt is
controlled entirely within the GIC hardware and therefore should be a
property of the GIC itself, not all the random devices connected
upstream to the GIC.
It also places policy about the priority of the various interrupts into
the device tree. Typically the device tree would contain only
information about the topology of the hardware blocks, not arbitrary
policy decisions that software could change and still have a perfectly
functional system.
Therefore I would recommend removing the third cell from the interrupt
specifier.
> +Example:
> +
> + cpu_intc: interrupt-controller@0 {
> + compatible = "mti,cpu-interrupt-controller";
> +
> + interrupt-controller;
> + #interrupt-cells = <1>;
> + };
> +
> + gic: interrupt-controller@1bdc0000 {
> + compatible = "mti,global-interrupt-controller";
> + reg = <0x1bdc0000 0x20000>;
> +
> + interrupt-controller;
> + #interrupt-cells = <3>;
> +
> + interrupt-parent = <&cpu_intc>;
> + interrupts = <3>, <4>;
> + };
> +
> + uart@18101400 {
> + ...
> + interrupt-parent = <&gic>;
> + interrupts = <24 IRQ_TYPE_LEVEL_HIGH 0>;
> + ...
> + };
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-09-02 17:27 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-29 22:14 [PATCH 00/12] MIPS: GIC device-tree support Andrew Bresticker
2014-08-29 22:14 ` [PATCH 01/12] MIPS: Provide a generic plat_irq_dispatch Andrew Bresticker
[not found] ` <1409350479-19108-2-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-31 17:34 ` Jonas Gorski
2014-08-29 22:14 ` [PATCH 02/12] MIPS: Set vint handler when mapping CPU interrupts Andrew Bresticker
[not found] ` <1409350479-19108-1-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-29 22:14 ` [PATCH 03/12] of: Add binding document for MIPS GIC Andrew Bresticker
[not found] ` <1409350479-19108-4-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-30 7:53 ` Arnd Bergmann
2014-08-31 18:34 ` Andrew Bresticker
2014-09-01 11:01 ` Mark Rutland
2014-09-01 12:11 ` James Hogan
2014-09-02 0:53 ` Andrew Bresticker
[not found] ` <CAL1qeaH97fL3x689-FwOxRZWS2-6CDzzzJX3xEKdvULHoxjMLA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-02 9:33 ` Mark Rutland
2014-09-02 16:36 ` Andrew Bresticker
2014-09-02 17:27 ` David Daney [this message]
2014-09-02 19:36 ` Andrew Bresticker
[not found] ` <CAL1qeaHcV_4Z9n_THEN_aST3smgaW1vwn81SkmbU0AUJ_rdB1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-03 0:50 ` David Daney
[not found] ` <540665BA.3080702-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-09-03 23:53 ` Andrew Bresticker
2014-09-04 0:06 ` David Daney
2014-08-29 22:14 ` [PATCH 05/12] MIPS: GIC: Add device-tree support Andrew Bresticker
[not found] ` <1409350479-19108-6-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-30 7:54 ` Arnd Bergmann
2014-08-31 18:42 ` Andrew Bresticker
2014-08-30 6:33 ` [PATCH 00/12] MIPS: GIC " John Crispin
[not found] ` <5401703B.4090801-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
2014-08-31 18:32 ` Andrew Bresticker
2014-08-29 22:14 ` [PATCH 04/12] MIPS: GIC: Move MIPS_GIC_IRQ_BASE into platform irq.h Andrew Bresticker
[not found] ` <1409350479-19108-5-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-30 7:57 ` Arnd Bergmann
2014-08-31 18:54 ` Andrew Bresticker
[not found] ` <CAL1qeaEEo6-LZz3Kex7oPUfz=Z56nvKoDnqu051rGhhi3ZFTDQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-09-01 8:34 ` Arnd Bergmann
2014-09-02 0:08 ` Andrew Bresticker
2014-09-02 22:22 ` Andrew Bresticker
2014-09-03 15:08 ` Arnd Bergmann
2014-08-29 22:14 ` [PATCH 06/12] MIPS: GIC: Add generic IPI support when using DT Andrew Bresticker
2014-08-29 22:14 ` [PATCH 07/12] MIPS: GIC: Implement irq_set_type callback Andrew Bresticker
2014-08-29 22:14 ` [PATCH 08/12] MIPS: GIC: Implement generic irq_ack/irq_eoi callbacks Andrew Bresticker
2014-08-29 22:14 ` [PATCH 09/12] MIPS: GIC: Fix gic_set_affinity() return value Andrew Bresticker
2014-08-29 22:14 ` [PATCH 10/12] MIPS: GIC: Support local interrupts Andrew Bresticker
2014-08-29 22:14 ` [PATCH 11/12] MIPS: GIC: Use local interrupts for timer Andrew Bresticker
2014-08-29 22:14 ` [PATCH 12/12] MIPS: Malta: Map GIC local interrupts Andrew Bresticker
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=5405FE07.4030400@gmail.com \
--to=ddaney.cavm-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org \
--cc=jeffrey.deans-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=markos.chandras-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=paul.burton-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.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).