From 267efc7d469477927baa5c0e540d91cb51ca25bf Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Fri, 13 Dec 2024 15:14:38 +0100 Subject: [PATCH] checks: Warn about missing #address-cells for interrupt parents 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 Signed-off-by: Thierry Reding Reviewed-by: Rob Herring (Arm) Message-ID: <20241213141438.3616902-1-thierry.reding@gmail.com> Signed-off-by: David Gibson --- checks.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/checks.c b/checks.c index 9e6a7b6a..123f2eb4 100644 --- a/checks.c +++ b/checks.c @@ -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)