devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] of: WARN on using default root node #address-cells/#size-cells
@ 2024-05-30 18:50 Rob Herring (Arm)
  2024-05-30 19:21 ` Conor Dooley
  2024-05-30 20:27 ` Sam Ravnborg
  0 siblings, 2 replies; 5+ messages in thread
From: Rob Herring (Arm) @ 2024-05-30 18:50 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Andreas Larsson, Sam Ravnborg, sparclinux, devicetree,
	linux-kernel

While OpenFirmware originally allowed default values of #address-cells
and #size-cells, FDT has long required explicit values. It's been a
warning in dtc for the root node since the beginning (2005) and for
any parent node since 2007. Of course, not all FDT uses dtc, but that
should be the majority by far. The various extracted OF devicetrees I
have dating back to the 1990s (various PowerMac, OLPC, PASemi Nemo)
all have explicit root node properties.

I have no idea what exists for Sparc, so disabling the warning for it.
If any other platforms hit the warning, then the warning can be
disabled for them.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
Sparc folks, If anyone can dump DTs from some Sparc systems it would be
helpful.
---
 drivers/of/base.c | 2 ++
 drivers/of/fdt.c  | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 61fff13bbee5..6930aa29fec1 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -96,6 +96,7 @@ int of_bus_n_addr_cells(struct device_node *np)
 			return cells;
 
 	/* No #address-cells property for the root node */
+	WARN_ONCE(!IS_ENABLED(CONFIG_SPARC), "Only listed platforms should rely on default '#address-cells'\n");
 	return OF_ROOT_NODE_ADDR_CELLS_DEFAULT;
 }
 
@@ -116,6 +117,7 @@ int of_bus_n_size_cells(struct device_node *np)
 			return cells;
 
 	/* No #size-cells property for the root node */
+	WARN_ONCE(!IS_ENABLED(CONFIG_SPARC), "Only listed platforms should rely on default '#size-cells'\n");
 	return OF_ROOT_NODE_SIZE_CELLS_DEFAULT;
 }
 
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index a8a04f27915b..568a3fca4c27 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -961,11 +961,13 @@ int __init early_init_dt_scan_root(void)
 	prop = of_get_flat_dt_prop(node, "#size-cells", NULL);
 	if (prop)
 		dt_root_size_cells = be32_to_cpup(prop);
+	WARN(!prop, "No '#size-cells' in root node\n");
 	pr_debug("dt_root_size_cells = %x\n", dt_root_size_cells);
 
 	prop = of_get_flat_dt_prop(node, "#address-cells", NULL);
 	if (prop)
 		dt_root_addr_cells = be32_to_cpup(prop);
+	WARN(!prop, "No '#address-cells' in root node\n");
 	pr_debug("dt_root_addr_cells = %x\n", dt_root_addr_cells);
 
 	return 0;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-05-31 15:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-30 18:50 [PATCH] of: WARN on using default root node #address-cells/#size-cells Rob Herring (Arm)
2024-05-30 19:21 ` Conor Dooley
2024-05-31  0:33   ` Rob Herring
2024-05-31 15:11     ` Conor Dooley
2024-05-30 20:27 ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).