[PATCH] powerpc: document new interrupt-array property
Segher Boessenkool
segher at kernel.crashing.org
Fri Feb 23 11:07:25 EST 2007
>> Option #3 -- define new, logical interrupt nexus to do
>> the mapping.
> There's no point to option 3 as given. If we're going to use an
> interrupt nexus, and rely on the fact that the physical versus
> interrupt tree addressing mismatch doesn't matter in this case, then
> we might as well put the interrupt nexus into the node itself,
> i.e. option 1.
That can give problems if there are interrupts in one
of the descendants of the node. It's also just nasty,
don't you agree?
> The only point to 3 would be if we make the MAL a
> child of its interrupt nexus, thereby ensuring that the address forms
> match.
No, you cannot do that. There is no extra device
there in reality so it shouldn't be in the device tree
either. Also, it just doesn't work.
> Something like:
>
> malint-nexus {
> #interrupt-cells = <1>;
> ranges;
> interrupt-map = <0 0 0 &UIC0 a 4
> .... >;
> interrupt-map-mask = <ffffffff 0 0>;
If you have a "ranges" property you need a
"#address-cells" and a "#size-cells" property
too -- it just doesn't make any sense otherwise.
You don't want this nexus node to be anywhere inside
the "normal" device tree -- it doesn't sit there in
hardware, it shouldn't sit there in the device tree,
that will only cause problems.
> Note the empty ranges property (passthrough).
There is nothing to pass anything through though,
this node shouldn't be here.
> That's kind of
> irrelevant here, since MAL is DCR controlled,
Yeah, so MAL should have the DCR reg in its "reg"
property. It needs *something* there -- what if
you had two MALs?
> but would matter if we
> had a similar situation with a device that had MMIO registers (and
> therefore a "reg" property).
Sorry, I'm going to shout: "reg" HAS NOTHING TO DO
WITH MMIO.
> For MAL, since it has no "reg", we set
> the interrupt-map-mask to ignore the unit address.
So you're saying your "#address-cells" is not 0, but
you have no "reg" property? Congratulations, you
built yourself a wildcard package.
Segher
More information about the Linuxppc-dev
mailing list