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

"Luca Ceresoli" <[email protected]> Wed, 01 Apr 2026 17:19:09 +0200
Newsgroups org.kernel.vger.devicetree-spec,org.kernel.vger.devicetree-compiler,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
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 <[email protected]>

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