Re: [PATCH] ARM: dts: zynq: Add address-cells property to interrupt controllers

From: Rob Herring
Date: Wed Feb 03 2021 - 11:50:29 EST


On Wed, Feb 3, 2021 at 8:44 AM Andre Przywara <andre.przywara@xxxxxxx> wrote:
>
> On Wed, 3 Feb 2021 15:15:19 +0100
> Michal Simek <michal.simek@xxxxxxxxxx> wrote:
>
> > On 2/3/21 3:12 PM, Rob Herring wrote:
> > > On Wed, Feb 3, 2021 at 1:01 AM Michal Simek <michal.simek@xxxxxxxxxx> wrote:
> > >>
> > >>
> > >>
> > >> On 2/1/21 6:41 PM, Rob Herring wrote:
> > >>> On Mon, Feb 1, 2021 at 8:27 AM Michal Simek <michal.simek@xxxxxxxxxx> wrote:
> > >>>>
> > >>>> The commit 3eb619b2f7d8 ("scripts/dtc: Update to upstream version
> > >>>> v1.6.0-11-g9d7888cbf19c") updated dtc version which also contained DTC
> > >>>> commit
> > >>>> "81e0919a3e21 checks: Add interrupt provider test"
> > >>>> where reasons for this checking are mentioned as
> > >>>> "A missing #address-cells property is less critical, but creates
> > >>>> ambiguities when used in interrupt-map properties, so warn about this as
> > >>>> well now."
> > >>>>
> > >>>> Add address-cells property to gic and gpio nodes to get rid of this warning.
> > >>>> The similar change has been done for ZynqMP too.
> > >>>
> > >>> FYI, we're going to make this check dependent on having an
> > >>> interrupt-map property. So adding these isn't necessary.
> > >>
> > >> Good to know. Is there going to be report if interrupt-map doesn't
> > >> exist? Which can end up with reverting these changes?
> > >
> > > You mean a warning if '#address-cells' is present and interrupt-map is
> > > not? No, that would cause lots of warnings.
> >
> > yep.
>
> Why would we do that? That sounds dangerous and would be broken if the
> IRQ controller is in a generic .dtsi (as it usually is), but the
> interrupt map is only in *some* of the board .dts files.
>
> What is the problem of just putting #address-cells = <0>; in the
> IRQ controller node, after checking that there currently no interrupt
> maps in use and no IRQ children? And be safe for good? That's 16 bytes
> in the DTB, IIUC.

Because I don't think we need a bunch of warning fix patches to add
these everywhere. Also, the need for #address-cells pretty much makes
no sense on any modern system. It is a relic from days when the bus
(address) topology and interrupt topology were related.

> Because otherwise we have that lovely ambiguity between the
> implicit default #address-cells = 2; and the assumed default of 0.
>
> And that's why I think we also cannot *automatically* add an #ac = <0>;
> property, because that would change behaviour.

I'd rather try to limit where we assume the default of 2. My guess is
that's only some combination of old PowerPC and/or Sparc and no FDT
based DT.

Rob