Subject: Re: [PATCH] powerpc: document new interrupt-array property

From: Segher Boessenkool <[email-masked]>
Date: Fri, 23 Feb 2007 01:25:19 +0100

>> [Of course the #a value better be the same as the value
>> in the physical parent, and all nodes mapping via a
>> particular "interrupt-map" better have unique unit
>> address for that map].
>
> Right.  In other words, the addressing format of the interrupt-parent
> must match that of the physical parent,

Not just the addressing _format_, the _whole_
addressing (addresses need to be unique!)

> which breaks the usual
> disconnection between the interrupt tree and the main tree.

Well they aren't really disconnected anyway.  But yeah I
know what you mean, and it doesn't help constructing
elegant interrupt trees -- you often end up creating
lots of extra nexus nodes, just to get a couple of devices
at the same level.

> Or to
> look at it another way, the "reg" property is doubly constrained to
> make sense both in the main tree, and in the interrupt tree.

But in all cases where it makes sense to use the unit
address in an interrupt map, that map does sit in the
parent node in question so all is good.

> And
> really, the only way I can see it working other than by happy
> coincidence is if the interrupt-parent *is* the physical parent.

It works by having interrupt-controller nodes for
all interrupt controllers, and interrupt-nexus
nodes for all wacky routing / swizzling / whatever.
Since a nexus is a bunch of wires that aren't described
elsewhere in the tree you have to create a node for
it.  It's not physically addressable so you just have to
put it somewhere logical.  In the case of a PCI-PCI
bridge's "standard" swizzling for example, the bridge
node is a reasonable spot.  In many cases there is no
suitable already existing node so you just have to
create a new node.

Segher