Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1420274

Re: Using irq-crossbar.c

From Mason <slash.tmp@free.fr>
Newsgroups linux.kernel
Subject Re: Using irq-crossbar.c
Date 2016-06-12 16:00 +0200
Message-ID <rJe5I-U8-9@gated-at.bofh.it> (permalink)
References (1 earlier) <rIxaq-6KH-43@gated-at.bofh.it> <rIArD-AY-5@gated-at.bofh.it> <rINRT-1qU-3@gated-at.bofh.it> <rITaV-4Oy-11@gated-at.bofh.it> <rJav8-7mt-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 12/06/2016 12:00, Marc Zyngier wrote:

> Mason wrote:
> 
>> The problem with some Linux APIs is that they're logical and obvious
>> to people who've been using them for years. For newcomers, it's not
>> always so obvious.
>>
>> In this specific instance, the problem statement seems rather simple,
>> on the surface. An interrupt controller, X=0..127 lines in, Y=0..23
>> lines out (connected to GIC interrupt lines 0..23) and "all" we need
>> is a way to map Xs to Ys.
>>
>> As a first order approximation, it's enough to map all Xs to 0.
>> And provide a way for the kernel to check the registers containing
>> the bit-vectors indicating which interrupt(s) fired.
> 
> If that's what your hardware is, then you are taking the wrong
> approach. The irq-crossbar driver does not do that at all: it has x
> inputs and y outputs, but connects exactly *one input to one output*.
> No multiplexing.

Connecting one input to one output is possible iff x=y right?
(In other words, a bijection.)


> And the hierarchical domain infrastructure enforces a similar property:
> a Linux interrupt is dealt with at each level of the hierarchy without
> multiplexing: the "irq" is the same, while the "hwirq" varies to
> reflect the "input pin" for a given interrupt controller.
> 
> In your particular case, you have an evolved chained interrupt
> controller, and nothing else.

Is it possible to support such an "evolved chained intc" through DT only,
or does it require a few function calls from driver code?


>> Is this Doxygen format? Is there a make target to generate
>> some documentation?
> 
> Try "make help".

Documentation targets:
 Linux kernel internal documentation in different formats:
  htmldocs        - HTML
  pdfdocs         - PDF
  psdocs          - Postscript
  xmldocs         - XML DocBook
  mandocs         - man pages
  installmandocs  - install man pages generated by mandocs
  cleandocs       - clean all generated DocBook files


>>> - You've changed the default interrupt controller to be your crossbar.
>>>   Which means that all the sub-nodes are inheriting it. Have you
>>>   checked that this was valid for all of these nodes?
>>
>> I'm not sure I follow. All platform interrupts flow into the platform
>> controller. Maybe other platforms have more complex setups, with
>> several cascaded controllers?
> 
> Most embedded platforms do.

My imagination is lacking, I don't see why it needs to be more
complex than N platform input lines, and M output lines feeding
into the GIC (with M <= N)

(Our previous intc had N=64 and M=3; the new one has N=128 and M=24)

Regards.

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-10 17:40 +0200
  Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-10 18:10 +0200
    Re: Using irq-crossbar.c Mason <slash.tmp@free.fr> - 2016-06-10 21:40 +0200
      Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-11 12:00 +0200
        Re: Using irq-crossbar.c Mason <slash.tmp@free.fr> - 2016-06-11 17:40 +0200
          Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-12 12:10 +0200
            Re: Using irq-crossbar.c Mason <slash.tmp@free.fr> - 2016-06-12 16:00 +0200
              Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-13 10:00 +0200
          Re: Using irq-crossbar.c "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca> - 2016-06-13 16:10 +0200
            Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-13 17:00 +0200
              Re: Using irq-crossbar.c "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca> - 2016-06-13 17:50 +0200
                Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-13 18:00 +0200
                Re: Using irq-crossbar.c Mason <slash.tmp@free.fr> - 2016-06-13 18:00 +0200
                Re: Using irq-crossbar.c "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca> - 2016-06-13 20:00 +0200
        Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-13 17:20 +0200
          Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-13 18:30 +0200
    Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-13 17:50 +0200
      Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-13 18:30 +0200
        Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-14 18:40 +0200
          Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-14 18:40 +0200
            Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-16 14:50 +0200
              Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-21 12:20 +0200
                Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-21 13:40 +0200
                Re: Using irq-crossbar.c Marc Zyngier <marc.zyngier@arm.com> - 2016-06-21 14:50 +0200
                Re: Using irq-crossbar.c Sebastian Frias <sf84@laposte.net> - 2016-06-21 18:00 +0200
      Re: Using irq-crossbar.c "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca> - 2016-06-13 20:00 +0200
  Re: Using irq-crossbar.c "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca> - 2016-06-10 18:20 +0200

csiph-web