From: "Rob Herring (Arm)" <robh@kernel.org>
To: Saravana Kannan <saravanak@google.com>
Cc: Andreas Larsson <andreas@gaisler.com>,
Sam Ravnborg <sam@ravnborg.org>,
sparclinux@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH] of: WARN on using default root node #address-cells/#size-cells
Date: Thu, 30 May 2024 13:50:48 -0500 [thread overview]
Message-ID: <20240530185049.2851617-1-robh@kernel.org> (raw)
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
next reply other threads:[~2024-05-30 18:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-30 18:50 Rob Herring (Arm) [this message]
2024-05-30 19:21 ` [PATCH] of: WARN on using default root node #address-cells/#size-cells Conor Dooley
2024-05-31 0:33 ` Rob Herring
2024-05-31 15:11 ` Conor Dooley
2024-05-30 20:27 ` Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240530185049.2851617-1-robh@kernel.org \
--to=robh@kernel.org \
--cc=andreas@gaisler.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
--cc=saravanak@google.com \
--cc=sparclinux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).