Skip to content

Commit

Permalink
checks: Warn about missing #address-cells for interrupt parents
Browse files Browse the repository at this point in the history
The device tree specification (v0.4) suggests that #address-cells is
mandatory for interrupt parent nodes. If this property is missing, Linux
will default to the value of 0.

A number of device tree files rely on Linux' fallback and don't specify
an explicit #address-cells as suggested by the specification. This can
cause issues when these device trees are passed to software with a more
pedantic interpretation of the DT spec.

Add a warning when this case is detected so that device tree files can
be fixed.

Reported-by: Brad Griffis <[email protected]>
Signed-off-by: Thierry Reding <[email protected]>
Reviewed-by: Rob Herring (Arm) <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: David Gibson <[email protected]>
  • Loading branch information
thierryreding authored and dgibson committed Dec 18, 2024
1 parent 755db11 commit 267efc7
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions checks.c
Original file line number Diff line number Diff line change
Expand Up @@ -1676,6 +1676,10 @@ static void check_interrupt_map(struct check *c,
cellprop = get_property(provider_node, "#address-cells");
if (cellprop)
parent_cellsize += propval_cell(cellprop);
else
FAIL_PROP(c, dti, node, irq_map_prop,
"Missing property '#address-cells' in node %s, using 0 as fallback",
provider_node->fullpath);

cell += 1 + parent_cellsize;
if (cell > map_cells)
Expand Down

0 comments on commit 267efc7

Please sign in to comment.