Re: [RFC PATCH 15/15] Introduce v18 dtb version

From: Luca Ceresoli

Date: Wed Apr 01 2026 - 11:37:16 EST


On Tue Feb 10, 2026 at 6:33 PM CET, Herve Codina wrote:
> This v18 version will add support for
> - Structured tags.
> Those tags value definition will allow old libfdt, dtc and other
> tools to skip unknown tags if encountered in future dtb version.

"old" seems to imply that versions released before today will be able to
wkip unknown tags. I think this should be clarified along the lines of:

libfdt, dtc and other tools implementing version v18 will be able to wkip
unknown tags in dtbs generated with later versions of dtc

> - dt_flags header field.
> For now this flag field is set to 0. It is a placeholder for future
> dtb version and could be used to store some dtb related information
> such as the kind of dtb.

Is this intended for DT addons?

You may mention a realistiv use case here.

>
> - last_comp_version_w header field.
> This field is similar to last_comp_version but for writing.
> It contains the lowest version of the devicetree data structure with
> which the version used can safely perform modifications (taking into
> account following rules related to unknown tags).
> If this lowest version is greater than the last known supported
> version, modification are simply forbidden and lead to a
> FDT_ERR_BADVERSION error.
>
> For modification, when an unknown tag that can be skipped is involved
> and last_comp_version_w allows modifications, the following rules
> applies:
^
apply

> - When a property is modified, tags related to this property are
> removed and the dtb version is downgraded.
>
> - When a property is removed, tags related to this property are
> obviously removed. The dtb version is kept unchanged.
>
> - When a property or a node is added, obviously no unknown tags are
> added and the dtb version is kept unchanged.
>
> - When a node is removed, tags related to this node are obviously
> removed. The dtb version is kept unchanged.
>
> - Adding, removing or modifying a property is not considered as a node
> modification and so, those operations have no impacts on unknown
> tags related to the node. Those node related tags are kept
> unchanged.
>
> - The only modification considered as a node modification is setting
> its name. We consider that this operation has no impact on tags
> related to the node. Here also, those node related tags and the dtb
> version are kept unchanged.
>
> - Global (dtb related) unknown tags are kept unchanged regardless the
> modification done.
>
> In all cases, if unknown tags are not involved in a modification, the
> dtb version is not downgraded when the modification is node.
^
made?


>
> Compared to previous version, it is worth noting that the dtb is not
^
"dtb version"

> downgrade for all modification but only when unknown tags are removed
^
downgraded for any


> due a property modification.
^
"due to a ..."

I'm not sure I got what you mean by the initial "Compared to previous
version". Version(s) of what?

If I just remove those 4 words the sentence seems OK to me BTW.

> Signed-off-by: Herve Codina <herve.codina@xxxxxxxxxxx>

I am unable to fully understand the implications of this patch, but the
code seems OK to me as far as I can tell.

Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com