Hi Jessica, On Thu, Nov 25, 2021 at 5:08 PM Jessica Clarke <jrtc27@xxxxxxxxxx> wrote: > On 25 Nov 2021, at 15:22, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > To improve human readability and enable automatic validation, the tuples > > in "interrupts-extended" properties should be grouped using angle > > brackets. As the DT bindings lack an upper bound on the number of > > interrupts, thus assuming one, proper grouping is currently flagged as > > an error. Rob: Is this a bug in the tooling that should be fixed? Regardless, specifying a real upper limit is always a good idea. > > Fix this by adding the missing "maxItems", limiting it to 9 interrupts > > (one interrupt for a system management core, and two interrupts per core > > for other cores), which should be sufficient for now. > > This is SiFive’s IP, so is this actually true? I would imagine it’s > just parameterised and could be generated with as many targets as fit > in the MMIO space, and that this is thus inaccurate. Besides, such a Yes, this is implementation-defined. I just used the maximum value currently in use. drivers/irqchip/irq-sifive-plic.c has #define MAX_CONTEXTS 15872, which matches the value of CONTEXT_PER_HART and the available address space in the driver and in [1]. Would you be more comfortable with "maxItems: 15872"? Or do you prefer setting the maximum based on the compatible value (2 for k210, 9 for fu540, 4 for jh7100[2])? > function change should be made separately from the grouping change. OK, will split in v2. > The same goes for your equivalent sifive,clint0 patch. OK. > > Group the tuples in the example. > > > > Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > > --- > > .../interrupt-controller/sifive,plic-1.0.0.yaml | 12 ++++++------ > > 1 file changed, 6 insertions(+), 6 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml > > index 08d5a57ce00ff446..198b373f984f3438 100644 > > --- a/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml > > +++ b/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml > > @@ -61,6 +61,7 @@ properties: > > > > interrupts-extended: > > minItems: 1 > > + maxItems: 9 > > description: > > Specifies which contexts are connected to the PLIC, with "-1" specifying > > that a context is not present. Each node pointed to should be a [1] https://static.dev.sifive.com/U54-MC-RVCoreIP.pdf [2] The PLIC memory map in https://github.com/starfive-tech/JH7100_Docs/blob/main/vic_u7_manual_with_creativecommons.pdf indicate other values of ENABLE_PER_HART and CONTEXT_PER_HART? Is memory the map correct? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds