scripts/dtc/checks.c | 5 +++++ 1 file changed, 5 insertions(+)
The function check_node_name_chars_strict issues a false alarm when
compiling an overlay dts.
/fragment@0/__overlay__: Character '_' not recommended in node name
This workaround will fix it by skip checking for node named __overlay__.
Signed-off-by: Qun-Wei Lin <qun-wei.lin@mediatek.com>
---
scripts/dtc/checks.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
index 781ba1129a8e..6ef4f2cd67b9 100644
--- a/scripts/dtc/checks.c
+++ b/scripts/dtc/checks.c
@@ -325,6 +325,11 @@ static void check_node_name_chars_strict(struct check *c, struct dt_info *dti,
{
int n = strspn(node->name, c->data);
+ if (streq(node->name, "__overlay__")) {
+ /* HACK: Overlay fragments are a special case */
+ return;
+ }
+
if (n < node->basenamelen)
FAIL(c, dti, node, "Character '%c' not recommended in node name",
node->name[n]);
--
2.18.0
On 5/31/22 01:33, Qun-Wei Lin wrote:
> The function check_node_name_chars_strict issues a false alarm when
> compiling an overlay dts.
>
> /fragment@0/__overlay__: Character '_' not recommended in node name
>
> This workaround will fix it by skip checking for node named __overlay__.
This is not a false alarm.
Do not special case node name "__overlay__". This node name should never
occur in a modern overlay source file.
For details, see "Overlay Source Format" in the "Overlays" section of:
https://elinux.org/Device_Tree_Reference#Overlays
That paragraph also has a pointer to the correct format for overlay
source files, which is slides 29-34 of:
https://elinux.org/Device_Tree_Reference#Overlays
-Frank
>
> Signed-off-by: Qun-Wei Lin <qun-wei.lin@mediatek.com>
> ---
> scripts/dtc/checks.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
> index 781ba1129a8e..6ef4f2cd67b9 100644
> --- a/scripts/dtc/checks.c
> +++ b/scripts/dtc/checks.c
> @@ -325,6 +325,11 @@ static void check_node_name_chars_strict(struct check *c, struct dt_info *dti,
> {
> int n = strspn(node->name, c->data);
>
> + if (streq(node->name, "__overlay__")) {
> + /* HACK: Overlay fragments are a special case */
> + return;
> + }
> +
> if (n < node->basenamelen)
> FAIL(c, dti, node, "Character '%c' not recommended in node name",
> node->name[n]);
On Tue, May 31, 2022 at 04:43:18PM -0400, Frank Rowand wrote: > On 5/31/22 01:33, Qun-Wei Lin wrote: > > The function check_node_name_chars_strict issues a false alarm when > > compiling an overlay dts. > > > > /fragment@0/__overlay__: Character '_' not recommended in node name > > > > This workaround will fix it by skip checking for node named __overlay__. > > This is not a false alarm. > > Do not special case node name "__overlay__". This node name should never > occur in a modern overlay source file. A dtbo -> dts pass will give warnings, so handling these nodes is worthwhile. Though thinking a bit more about it, I think this one is off by default, but W=2 turns it on. Rob
On 5/31/22 17:49, Rob Herring wrote: > On Tue, May 31, 2022 at 04:43:18PM -0400, Frank Rowand wrote: >> On 5/31/22 01:33, Qun-Wei Lin wrote: >>> The function check_node_name_chars_strict issues a false alarm when >>> compiling an overlay dts. >>> >>> /fragment@0/__overlay__: Character '_' not recommended in node name >>> >>> This workaround will fix it by skip checking for node named __overlay__. >> >> This is not a false alarm. >> >> Do not special case node name "__overlay__". This node name should never >> occur in a modern overlay source file. > > A dtbo -> dts pass will give warnings, so handling these nodes is > worthwhile. Though thinking a bit more about it, I think this one is off > by default, but W=2 turns it on. Yes, at least as of 5.18-rc1 the warning is only if '-W node_name_chars_strict', so a dtbo -> dts pass will not give the warning for node __overlay__ by default. -Frank > > Rob
On Tue, May 31, 2022 at 12:34 AM Qun-Wei Lin <qun-wei.lin@mediatek.com> wrote:
>
> The function check_node_name_chars_strict issues a false alarm when
> compiling an overlay dts.
>
> /fragment@0/__overlay__: Character '_' not recommended in node name
>
> This workaround will fix it by skip checking for node named __overlay__.
>
> Signed-off-by: Qun-Wei Lin <qun-wei.lin@mediatek.com>
> ---
> scripts/dtc/checks.c | 5 +++++
We don't take patches for dtc. You must send them to upstream dtc and
then it will be sync'ed to the kernel tree.
> 1 file changed, 5 insertions(+)
>
> diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
> index 781ba1129a8e..6ef4f2cd67b9 100644
> --- a/scripts/dtc/checks.c
> +++ b/scripts/dtc/checks.c
> @@ -325,6 +325,11 @@ static void check_node_name_chars_strict(struct check *c, struct dt_info *dti,
> {
> int n = strspn(node->name, c->data);
>
> + if (streq(node->name, "__overlay__")) {
> + /* HACK: Overlay fragments are a special case */
Not a hack IMO.
However, this should be checking for any node name starting with '__'.
Also, doesn't 'fragment@0' cause a warning about missing 'reg'?
© 2016 - 2026 Red Hat, Inc.