Re: [PATCH] scripts: dtc: fix a false alarm for node_name_chars_strict

From: Frank Rowand
Date: Tue May 31 2022 - 16:43:25 EST


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@xxxxxxxxxxxx>
> ---
> 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]);