public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/77] Add support for dtb metadata and addon device-trees
@ 2026-01-12 14:18 Herve Codina
  2026-01-12 14:18 ` [RFC PATCH 01/77] checks: Use consistent type for strspn() returned value Herve Codina
                   ` (79 more replies)
  0 siblings, 80 replies; 160+ messages in thread
From: Herve Codina @ 2026-01-12 14:18 UTC (permalink / raw)
  To: David Gibson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Ayush Singh, Geert Uytterhoeven, devicetree-compiler, devicetree,
	linux-kernel, devicetree-spec, Hui Pu, Ian Ray, Luca Ceresoli,
	Thomas Petazzoni, Herve Codina

This big picture series adds support for dtb metadata and addon
device-trees.

Before giving details about the series content, let me give a little bit
of context.

The use-case is to support additional boards that can be hot-plugged to
a connector available in a base board. This connector is standardized in
terms of resources available on each pin. Any additional boards
compatible with the connector should be able to be connected to base
board and all base boards where this connector is implemented should
support any additional boards.

TLDR: The last patch, patch 77, gives an example of dts and dtsa (new
      addon device-tree) handling this use-case. It provides an example
      of a realistic base board description (dts) and an realistic
      additional board description (dtsa).

Each base board is described by its own device-tree and the real
resource connected to the connector depends on each board. For instance
an i2c bus on the connector can come from the i2c1 controller from base
board A and i2c5 controller from base board B. This is obviously the
case for all resources wired to the connector.

On the other hand, the device-tree describing the additional board has
no reason to be changed based on the base board the additional board is
going to be connected. Indeed this device-tree describes the additional
board hardware and this hardware doesn't change if the additional board
is connected to the base board A or the base board B.

In order to extend a device-tree at runtime, a device-tree overlay can
be used. The drawback of current overlay implementation is that an
overlay is tightly coupled with the base device-tree it is applied to.

If a symbol of the base device-tree has to be used by the overlay, all
symbols available in the base device-tree need to be visible by the
overlay and the overlay can use only those symbol without any kind of
name translation.

With current overlay implementation, a overlay depends on the base
board. Indeed, if an overlay wants to add an I2C device on the I2C bus
available on the base board A connector, it needs to reference the i2c1
bus whereas it needs to reference the i2c5 bus if it used with the base
board B.

In order to fix the issue, the 'export symbol' concept has been
proposed. This concept allows some specific node to 'export' symbols in
order to be seen by an overlay applied to this node.

The use-case and the export symbol proposal have been detailed during
a talk at ELCE 2025. Have a look at the slides [1] and/or the video [2]
to have a clear view of the topic

[1] https://bootlin.com/pub/conferences/2025/elce/ceresoli-hotplug-status.pdf
[2] https://www.youtube.com/watch?v=C8dEQ4OzMnc

The export symbol proposal based on an export-symbol node in the
device-tree have been rejected by device-tree and dtc maintainers.

A discussion about the topic has been started on the mailing-list [3].
This discussions led to:

- The addition of meta-data in dtb instead of having __fixup__, __local__fixup__,
  an similar nodes in the device-tree used by overlays

- A new kind of device-tree, an addon device-tree, in order to replace the
  usage of the overlay device-tree in this 'hot-plugging additional board'
  use-case.

[3] https://lore.kernel.org/all/20250902105710.00512c6d@booty/

This current RFC is the implementation of features discussed on the
mailing-list. A lot of things are new in dtb format (new tags) and dts
format (new keyword, new kind of references) and not yet mentioned in
the standard.

The purpose of this big picture RFC is to move forward on this topic
based on code and some concrete dts / dtb example. Indeed, this RFC also
adds tests for each feature introduced. Those tests are performed using
dts files and the content of those dts files can also help in the
discussion.

The first patch is just a simple fix and can probably be merged out of this
meta-data and addon discussion.

  - Patches 2..12: Introduce new meta-data dtb tags based on markers

    Those new tags are FDT_REF_LOCAL and FDT_REF_PHANDLE.

    FDT_REF_LOCAL (details in patch 6) is used to tag property using a
    phandle and this phandle points to a local node (i.e. a node
    existing in the dtb).

    FDT_REF_PHANDLE (details in patch 11) is used to tag a property
    using a phandle but this phandle points to a non local node (i.e.
    the node doesn't exist in the dtb). The reference to the node is
    present with the tag and the phandle value has to be fixed when the
    dtb is applied. This tag can only be present in plugins (overlays)
    and addons dtb.

  - Patches 13..17: Introduce addons device-tree

    This part introduce the new /addon/ dts keyword

  - Patches 18..30: Introduce /export/ keyword and related dtb tags

    This part introduces the new /export/ dts keyword (details in patch
    20) and the related FDT_EXPORT_SYM and FDT_EXPORT_SYM_REF dtb tags.

    FDT_EXPORT_SYM (details in patch 25) is used when the exported
    symbol involved is a local node and FDT_EXPORT_SYM_REF (details in
    patch 29) is used when the node involved is a non local node.

  - Patches 31..38: Introduce /import/ keyword and related dtb tags

    This part introduces the new /import/ dts keyword (details in patch
    33) and the related FDT_IMPORT_SYM dtb tag (details in patch 35).

  - Patches 39..63: Introduce orphan nodes

    Even if the orphan nodes concept was already present in overlays,
    the final encoding of those nodes in addon dtbs is different
    compared to overlays dtbs.

    In overlays, orphan nodes are transformed to a /fragment@n/__overlay__
    node. This is not the way used in addons.

    Indeed, in addons, orphan nodes are not transformed to fit in
    something like /fragment@n/__overlay__. They are encoded in the dtb
    using a specific tag.

    This part, after some preparation, introduces orphan nodes (details
    in patch 48) and the related FDT_BEGIN_NODE_REF_SYM dtb tag (details
    in patch 56).

    It also adds support for addons dts/dtb without a 'root' (details in
    patch 58).

    This part ended with the support for merging orphan node described
    in dts when relevant (details patch 60).

  - Patches 64..65: Reference orphan nodes and its sub-nodes by path

    A new syntax is needed to be able to reference a an orphan node and
    its sub-nodes by path.

    This new syntax is '${$<orphan_name>/<path>}' (details in patch #60)

  - Patches 66..67: Namespace labels references

    Add Namespace labels references with the new syntax '&foo.bar.baz'.

    This new syntax, only allowed in addons, allows to 'jump' from node
    to node based on exported symbols defined at each node (details in
    patch 66).

  - Patches 68..71: Support for applying an addon

    First, add fdt_addon_apply() in libfdt (details in patch 70) and
    then the fdtaddon command line tool (details in patch 71).

  - Patches 72..76: fdtaddon test

    Several tests related to addon application

  - Patch 77: A more Realistic test

    A last test based on use-case we want to handle.

    This last patch (and its dts and dtsa files) shows the kind of usage
    is expected for addons.

    Also it proves that metadata and addons features handles our
    use-case.

I know this series is a huge series but I would like to give the big
picture in this RFC (I hope this was a good idea). Of course, this
series can be split for the upstreaming step and handled by parts by
parts. Let me know.

Tests are provided for each feature. In addition to be used for testing,
tests input source files and expected output files can be used to see
the expected behavior related to each feature.

I hope also that this first RFC will help in moving forward regarding
this 'handling an additional board described by a device-tree' topic.

Best regards,
Hervé

Herve Codina (77):
  checks: Use consistent type for strspn() returned value
  Introduce v18 dtb version
  libfdt: Introduce fdt_next_tag_full() and use it in fdt_next_tag()
  dtc: Allow to use data_append_markers() out of data.c
  fdtdump: Change FDT_PROP prob handling to ease future addition
  Add support for FDT_REF_LOCAL dtb tag
  livetree: Improve get_node_by_phandle()
  dtc: Introduce update_phandles_ref()
  dtc: Introduce mark_local_phandles()
  tests: Add basic metadata tests
  Add support for FDT_REF_PHANDLE dtb tag
  tests: metadata: Add external phandle reference tests
  Introduce dt_flags field in dtb header
  tests: metadata: Add a first test related to the dt_flags header field
  Add support for /addon/ keyword
  tests: metadata: Add a test related to addon dt_flags header value
  tests: metadata: Add a basic addon test
  dtc-parser.y: Avoid an empty proplist
  dtc: Introduce export symbols
  dtc: Add support for /export/ dts keyword parsing
  checks: Handle export symbols in fixup_phandle_references()
  dtc: Add export symbols (/export/ keyword) in generated dts file
  dtc: Introduce mark_local_exports()
  dtc: Introduce update_exports_ref()
  Add support for FDT_EXPORT_SYM dtb tag
  tests: metadata: Add export symbols with local references tests
  dtc: Add support for export symbols sorting
  tests: metadata: Add a test for export symbols sorting
  Add support for FDT_EXPORT_SYM_REF dtb tag
  tests: metadata: Add export symbols with external references tests
  dtc: Introduce import symbols
  dtc-parser: Introduce last_header_flags
  dtc: Add support for /import/ dts keyword parsing
  dtc: Add import symbols (/import/ keyword) in generated dts file
  Add support for FDT_IMPORT_SYM dtb tag
  tests: metadata: Add import symbols tests
  dtc: Add support for import symbols sorting
  tests: metadata: Improve sort test to check for import symbols sorting
  check: Get 'chosen' node using get_subnode()
  dtc: Introduce dti_get_node_by_path()
  dtc: Introduce dti_get_node_by_label()
  dtc: Introduce dti_get_node_by_phandle()
  dtc: Introduce dti_get_node_by_ref()
  dtc: Introduce dti_get_node_phandle()
  dtc: Introduce dti_get_property_by_label()
  dtc: Introduce dti_get_marker_label()
  dtc: Introduce dti_fill_fullpaths()
  dtc: Introduce orphan nodes
  dtc: Handle orphan nodes in dti_get_xxx_by_yyy()
  dtc: Handle orphan nodes in mark_local_xxx() and update_xxx_ref()
  dtc: Avoid NULL fullpath for nodes in orphan trees
  checks: Perform checks for orphan nodes
  dtc: Rename add_orphan_node() to plugin_add_orphan_node()
  dtc: Add basic support for addon orphan nodes dts parsing
  dtc: Add orphan nodes in generated dts file
  Add support for FDT_BEGIN_NODE_REF_SYM dtb tag
  tests: metadata: Add basic test for addon orphan nodes
  dtc: Add support for missing root node in addon device-tree
  tests: metadata: Add a test for addon without root node
  dtc: Allow parser_get_node_by_ref() to return an orphan node for
    merging purpose
  tests: metadata: Add a test related to orphan node merging
  dtc: Add support for orphan nodes sorting
  tests: metadata: Improve sort test to check for orphan nodes sorting
  dtc: Add support for references by path involving orphan nodes
  tests: metadata: Add a test for references by path involving orphan
    nodes
  dtc: Add support for namespace labels references
  tests: metadata: Add a test for namespace labels references
  libfdt: Introduce fdt_getprop_by_offset_w()
  libfdt: Introduce fdt_getprop_offset()
  libfdt: Add support for applying an addon on a base device-tree blob
  Add fdtaddon tool to apply an addon
  tests: Add a first basic test for fdtaddon
  tests: fdtaddon: Add a basic test for addons using an orphan nodes
  tests: fdtaddon: Add a basic test for addons with unresolved phandle
    references
  tests: fdtaddon: Add a test for addons using namespace label
    references
  tests: fdtaddon: Add a test for using 'stacked' addons
  tests: fdtaddon: Add a test using more realistic dts and dtsa

 Makefile                                      |    5 +
 checks.c                                      |  135 +-
 data.c                                        |    3 +-
 dtc-lexer.l                                   |   37 +
 dtc-parser.y                                  |  307 +++-
 dtc.c                                         |   64 +-
 dtc.h                                         |   72 +-
 fdtaddon.c                                    |  197 ++
 fdtdump.c                                     |  114 +-
 flattree.c                                    |  396 +++-
 fstree.c                                      |    5 +-
 libfdt/Makefile.libfdt                        |    2 +-
 libfdt/fdt.c                                  |  152 +-
 libfdt/fdt.h                                  |   15 +
 libfdt/fdt_addon.c                            | 1636 +++++++++++++++++
 libfdt/fdt_ro.c                               |   12 +
 libfdt/fdt_rw.c                               |  102 +-
 libfdt/libfdt.h                               |   60 +-
 libfdt/libfdt_internal.h                      |    7 +
 libfdt/meson.build                            |    1 +
 libfdt/version.lds                            |    2 +
 livetree.c                                    |  563 +++++-
 meson.build                                   |    2 +-
 ...ddon_addon_namespace-merged.dtb.dts.expect |   57 +
 ...fdtaddon_addon_namespace-merged.dtb.expect |   49 +
 tests/fdtaddon_addon_namespace.dtba.expect    |   31 +
 tests/fdtaddon_addon_namespace.dtsa           |   34 +
 tests/fdtaddon_base.dtb.expect                |   24 +
 tests/fdtaddon_base.dts                       |   27 +
 tests/fdtaddon_base_namespace.dtb.expect      |   29 +
 tests/fdtaddon_base_namespace.dts             |   33 +
 tests/fdtaddon_basics1-merged1.dtb.dts.expect |   35 +
 tests/fdtaddon_basics1-merged1.dtb.expect     |   27 +
 tests/fdtaddon_basics1-merged2.dtb.dts.expect |   35 +
 tests/fdtaddon_basics1-merged2.dtb.expect     |   27 +
 tests/fdtaddon_basics1.dtba.expect            |    8 +
 tests/fdtaddon_basics1.dtsa                   |   13 +
 tests/fdtaddon_basics2-merged1.dtb.dts.expect |   35 +
 tests/fdtaddon_basics2-merged1.dtb.expect     |   27 +
 tests/fdtaddon_basics2-merged2.dtb.dts.expect |   35 +
 tests/fdtaddon_basics2-merged2.dtb.expect     |   27 +
 tests/fdtaddon_basics2.dtba.expect            |    9 +
 tests/fdtaddon_basics2.dtsa                   |   15 +
 tests/fdtaddon_basics3-merged1.dtb.dts.expect |   36 +
 tests/fdtaddon_basics3-merged1.dtb.expect     |   29 +
 tests/fdtaddon_basics3-merged2.dtb.dts.expect |   36 +
 tests/fdtaddon_basics3-merged2.dtb.expect     |   29 +
 tests/fdtaddon_basics3.dtba.expect            |   12 +
 tests/fdtaddon_basics3.dtsa                   |   17 +
 ...ddon_realistic_addon-merged.dtb.dts.expect |   91 +
 ...fdtaddon_realistic_addon-merged.dtb.expect |   93 +
 tests/fdtaddon_realistic_addon.dtba.expect    |   32 +
 tests/fdtaddon_realistic_addon.dtsa           |   50 +
 tests/fdtaddon_realistic_base.dtb.expect      |   72 +
 tests/fdtaddon_realistic_base.dts             |   74 +
 .../fdtaddon_stack_1st-merged.dtb.dts.expect  |   51 +
 tests/fdtaddon_stack_1st-merged.dtb.expect    |   41 +
 tests/fdtaddon_stack_1st.dtba.expect          |   24 +
 tests/fdtaddon_stack_1st.dtsa                 |   27 +
 .../fdtaddon_stack_2nd-merged.dtb.dts.expect  |   70 +
 tests/fdtaddon_stack_2nd-merged.dtb.expect    |   59 +
 tests/fdtaddon_stack_2nd.dtba.expect          |   30 +
 tests/fdtaddon_stack_2nd.dtsa                 |   35 +
 tests/meson.build                             |    4 +-
 tests/metadata_addon_base.dtb.dts.expect      |   10 +
 tests/metadata_addon_base.dtb.expect          |   10 +
 tests/metadata_addon_base.dts                 |   14 +
 tests/metadata_addon_base.dts.dts.expect      |   10 +
 tests/metadata_addon_orphan1.dtb.dts.expect   |   16 +
 tests/metadata_addon_orphan1.dtb.expect       |   13 +
 tests/metadata_addon_orphan1.dts              |   19 +
 tests/metadata_addon_orphan1.dts.dts.expect   |   16 +
 tests/metadata_addon_orphan2.dtb.dts.expect   |   10 +
 tests/metadata_addon_orphan2.dtb.expect       |    8 +
 tests/metadata_addon_orphan2.dts              |   13 +
 tests/metadata_addon_orphan2.dts.dts.expect   |   10 +
 tests/metadata_addon_orphan3.dtb.dts.expect   |   22 +
 tests/metadata_addon_orphan3.dtb.expect       |   17 +
 tests/metadata_addon_orphan3.dts              |   28 +
 tests/metadata_addon_orphan3.dts.dts.expect   |   22 +
 .../metadata_addon_references.dtb.dts.expect  |   48 +
 tests/metadata_addon_references.dtb.expect    |   48 +
 tests/metadata_addon_references.dts           |   43 +
 .../metadata_addon_references.dts.dts.expect  |   48 +
 ...metadata_addon_refnamespace.dtb.dts.expect |   32 +
 tests/metadata_addon_refnamespace.dtb.expect  |   29 +
 tests/metadata_addon_refnamespace.dts         |   38 +
 ...metadata_addon_refnamespace.dts.dts.expect |   32 +
 tests/metadata_dtflags0.dtb.expect            |    1 +
 tests/metadata_dtflags0.dts                   |   10 +
 tests/metadata_dtflags1.dtb.expect            |    1 +
 tests/metadata_dtflags1.dts                   |   11 +
 .../metadata_exportsyms_local.dtb.dts.expect  |   26 +
 tests/metadata_exportsyms_local.dtb.expect    |   20 +
 tests/metadata_exportsyms_local.dts           |   28 +
 .../metadata_exportsyms_local.dts.dts.expect  |   26 +
 tests/metadata_exportsyms_ref.dtb.dts.expect  |   25 +
 tests/metadata_exportsyms_ref.dtb.expect      |   18 +
 tests/metadata_exportsyms_ref.dts             |   26 +
 tests/metadata_exportsyms_ref.dts.dts.expect  |   25 +
 tests/metadata_importsyms.dtb.dts.expect      |    9 +
 tests/metadata_importsyms.dtb.expect          |    8 +
 tests/metadata_importsyms.dts                 |   14 +
 tests/metadata_importsyms.dts.dts.expect      |    9 +
 tests/metadata_reflocal.dtb.dts.expect        |   23 +
 tests/metadata_reflocal.dtb.expect            |   20 +
 tests/metadata_reflocal.dts                   |   27 +
 tests/metadata_reflocal.dts.dts.expect        |   23 +
 tests/metadata_refphandle.dtb.dts.expect      |   17 +
 tests/metadata_refphandle.dtb.expect          |   16 +
 tests/metadata_refphandle.dts                 |   11 +
 tests/metadata_refphandle.dts.dts.expect      |   17 +
 tests/metadata_sort.dtb.dts.expect            |   61 +
 tests/metadata_sort.dtb.expect                |   48 +
 tests/metadata_sort.dts                       |   58 +
 tests/pylibfdt_tests.py                       |    8 +-
 tests/run_tests.sh                            |  176 +-
 tests/testutils.c                             |    2 +-
 tests/testutils.sh                            |    1 +
 tests/trees.S                                 |    3 +-
 treesource.c                                  |   42 +-
 121 files changed, 6552 insertions(+), 192 deletions(-)
 create mode 100644 fdtaddon.c
 create mode 100644 libfdt/fdt_addon.c
 create mode 100644 tests/fdtaddon_addon_namespace-merged.dtb.dts.expect
 create mode 100644 tests/fdtaddon_addon_namespace-merged.dtb.expect
 create mode 100644 tests/fdtaddon_addon_namespace.dtba.expect
 create mode 100644 tests/fdtaddon_addon_namespace.dtsa
 create mode 100644 tests/fdtaddon_base.dtb.expect
 create mode 100644 tests/fdtaddon_base.dts
 create mode 100644 tests/fdtaddon_base_namespace.dtb.expect
 create mode 100644 tests/fdtaddon_base_namespace.dts
 create mode 100644 tests/fdtaddon_basics1-merged1.dtb.dts.expect
 create mode 100644 tests/fdtaddon_basics1-merged1.dtb.expect
 create mode 100644 tests/fdtaddon_basics1-merged2.dtb.dts.expect
 create mode 100644 tests/fdtaddon_basics1-merged2.dtb.expect
 create mode 100644 tests/fdtaddon_basics1.dtba.expect
 create mode 100644 tests/fdtaddon_basics1.dtsa
 create mode 100644 tests/fdtaddon_basics2-merged1.dtb.dts.expect
 create mode 100644 tests/fdtaddon_basics2-merged1.dtb.expect
 create mode 100644 tests/fdtaddon_basics2-merged2.dtb.dts.expect
 create mode 100644 tests/fdtaddon_basics2-merged2.dtb.expect
 create mode 100644 tests/fdtaddon_basics2.dtba.expect
 create mode 100644 tests/fdtaddon_basics2.dtsa
 create mode 100644 tests/fdtaddon_basics3-merged1.dtb.dts.expect
 create mode 100644 tests/fdtaddon_basics3-merged1.dtb.expect
 create mode 100644 tests/fdtaddon_basics3-merged2.dtb.dts.expect
 create mode 100644 tests/fdtaddon_basics3-merged2.dtb.expect
 create mode 100644 tests/fdtaddon_basics3.dtba.expect
 create mode 100644 tests/fdtaddon_basics3.dtsa
 create mode 100644 tests/fdtaddon_realistic_addon-merged.dtb.dts.expect
 create mode 100644 tests/fdtaddon_realistic_addon-merged.dtb.expect
 create mode 100644 tests/fdtaddon_realistic_addon.dtba.expect
 create mode 100644 tests/fdtaddon_realistic_addon.dtsa
 create mode 100644 tests/fdtaddon_realistic_base.dtb.expect
 create mode 100644 tests/fdtaddon_realistic_base.dts
 create mode 100644 tests/fdtaddon_stack_1st-merged.dtb.dts.expect
 create mode 100644 tests/fdtaddon_stack_1st-merged.dtb.expect
 create mode 100644 tests/fdtaddon_stack_1st.dtba.expect
 create mode 100644 tests/fdtaddon_stack_1st.dtsa
 create mode 100644 tests/fdtaddon_stack_2nd-merged.dtb.dts.expect
 create mode 100644 tests/fdtaddon_stack_2nd-merged.dtb.expect
 create mode 100644 tests/fdtaddon_stack_2nd.dtba.expect
 create mode 100644 tests/fdtaddon_stack_2nd.dtsa
 create mode 100644 tests/metadata_addon_base.dtb.dts.expect
 create mode 100644 tests/metadata_addon_base.dtb.expect
 create mode 100644 tests/metadata_addon_base.dts
 create mode 100644 tests/metadata_addon_base.dts.dts.expect
 create mode 100644 tests/metadata_addon_orphan1.dtb.dts.expect
 create mode 100644 tests/metadata_addon_orphan1.dtb.expect
 create mode 100644 tests/metadata_addon_orphan1.dts
 create mode 100644 tests/metadata_addon_orphan1.dts.dts.expect
 create mode 100644 tests/metadata_addon_orphan2.dtb.dts.expect
 create mode 100644 tests/metadata_addon_orphan2.dtb.expect
 create mode 100644 tests/metadata_addon_orphan2.dts
 create mode 100644 tests/metadata_addon_orphan2.dts.dts.expect
 create mode 100644 tests/metadata_addon_orphan3.dtb.dts.expect
 create mode 100644 tests/metadata_addon_orphan3.dtb.expect
 create mode 100644 tests/metadata_addon_orphan3.dts
 create mode 100644 tests/metadata_addon_orphan3.dts.dts.expect
 create mode 100644 tests/metadata_addon_references.dtb.dts.expect
 create mode 100644 tests/metadata_addon_references.dtb.expect
 create mode 100644 tests/metadata_addon_references.dts
 create mode 100644 tests/metadata_addon_references.dts.dts.expect
 create mode 100644 tests/metadata_addon_refnamespace.dtb.dts.expect
 create mode 100644 tests/metadata_addon_refnamespace.dtb.expect
 create mode 100644 tests/metadata_addon_refnamespace.dts
 create mode 100644 tests/metadata_addon_refnamespace.dts.dts.expect
 create mode 100644 tests/metadata_dtflags0.dtb.expect
 create mode 100644 tests/metadata_dtflags0.dts
 create mode 100644 tests/metadata_dtflags1.dtb.expect
 create mode 100644 tests/metadata_dtflags1.dts
 create mode 100644 tests/metadata_exportsyms_local.dtb.dts.expect
 create mode 100644 tests/metadata_exportsyms_local.dtb.expect
 create mode 100644 tests/metadata_exportsyms_local.dts
 create mode 100644 tests/metadata_exportsyms_local.dts.dts.expect
 create mode 100644 tests/metadata_exportsyms_ref.dtb.dts.expect
 create mode 100644 tests/metadata_exportsyms_ref.dtb.expect
 create mode 100644 tests/metadata_exportsyms_ref.dts
 create mode 100644 tests/metadata_exportsyms_ref.dts.dts.expect
 create mode 100644 tests/metadata_importsyms.dtb.dts.expect
 create mode 100644 tests/metadata_importsyms.dtb.expect
 create mode 100644 tests/metadata_importsyms.dts
 create mode 100644 tests/metadata_importsyms.dts.dts.expect
 create mode 100644 tests/metadata_reflocal.dtb.dts.expect
 create mode 100644 tests/metadata_reflocal.dtb.expect
 create mode 100644 tests/metadata_reflocal.dts
 create mode 100644 tests/metadata_reflocal.dts.dts.expect
 create mode 100644 tests/metadata_refphandle.dtb.dts.expect
 create mode 100644 tests/metadata_refphandle.dtb.expect
 create mode 100644 tests/metadata_refphandle.dts
 create mode 100644 tests/metadata_refphandle.dts.dts.expect
 create mode 100644 tests/metadata_sort.dtb.dts.expect
 create mode 100644 tests/metadata_sort.dtb.expect
 create mode 100644 tests/metadata_sort.dts

-- 
2.52.0


^ permalink raw reply	[flat|nested] 160+ messages in thread

end of thread, other threads:[~2026-01-29  5:08 UTC | newest]

Thread overview: 160+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-12 14:18 [RFC PATCH 00/77] Add support for dtb metadata and addon device-trees Herve Codina
2026-01-12 14:18 ` [RFC PATCH 01/77] checks: Use consistent type for strspn() returned value Herve Codina
2026-01-12 14:55   ` Ayush Singh
2026-01-13  3:08   ` David Gibson
2026-01-13  4:42     ` David Gibson
2026-01-13  8:02       ` Herve Codina
2026-01-12 14:18 ` [RFC PATCH 02/77] Introduce v18 dtb version Herve Codina
2026-01-15  0:12   ` David Gibson
2026-01-16  9:09     ` Herve Codina
2026-01-19  5:13       ` David Gibson
2026-01-19  9:48         ` Herve Codina
2026-01-28  1:49           ` David Gibson
2026-01-20 20:38         ` Rob Herring
2026-01-29  1:40           ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 03/77] libfdt: Introduce fdt_next_tag_full() and use it in fdt_next_tag() Herve Codina
2026-01-15  0:17   ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 04/77] dtc: Allow to use data_append_markers() out of data.c Herve Codina
2026-01-15  0:18   ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 05/77] fdtdump: Change FDT_PROP prob handling to ease future addition Herve Codina
2026-01-12 15:41   ` Ayush Singh
2026-01-15  0:28     ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 06/77] Add support for FDT_REF_LOCAL dtb tag Herve Codina
2026-01-13 19:22   ` Rob Herring
2026-01-15  0:34     ` David Gibson
2026-01-15 15:54       ` Rob Herring
2026-01-16 10:16         ` Herve Codina
2026-01-16 10:17           ` Herve Codina
2026-01-19  6:16         ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 07/77] livetree: Improve get_node_by_phandle() Herve Codina
2026-01-15  0:41   ` David Gibson
2026-01-16 10:52     ` Herve Codina
2026-01-19  5:18       ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 08/77] dtc: Introduce update_phandles_ref() Herve Codina
2026-01-15  0:46   ` David Gibson
2026-01-16 11:26     ` Herve Codina
2026-01-19  5:21       ` David Gibson
2026-01-12 14:18 ` [RFC PATCH 09/77] dtc: Introduce mark_local_phandles() Herve Codina
2026-01-15  0:48   ` David Gibson
2026-01-16 13:09     ` Herve Codina
2026-01-19  5:46       ` David Gibson
2026-01-19 12:14         ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 10/77] tests: Add basic metadata tests Herve Codina
2026-01-15  0:50   ` David Gibson
2026-01-16 13:36     ` Herve Codina
2026-01-19  5:32       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 11/77] Add support for FDT_REF_PHANDLE dtb tag Herve Codina
2026-01-15  1:24   ` David Gibson
2026-01-16 15:17     ` Herve Codina
2026-01-19  5:40       ` David Gibson
2026-01-19 13:19         ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 12/77] tests: metadata: Add external phandle reference tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 13/77] Introduce dt_flags field in dtb header Herve Codina
2026-01-15  1:29   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 14/77] tests: metadata: Add a first test related to the dt_flags header field Herve Codina
2026-01-12 14:19 ` [RFC PATCH 15/77] Add support for /addon/ keyword Herve Codina
2026-01-12 14:19 ` [RFC PATCH 16/77] tests: metadata: Add a test related to addon dt_flags header value Herve Codina
2026-01-12 14:19 ` [RFC PATCH 17/77] tests: metadata: Add a basic addon test Herve Codina
2026-01-12 14:19 ` [RFC PATCH 18/77] dtc-parser.y: Avoid an empty proplist Herve Codina
2026-01-15  1:34   ` David Gibson
2026-01-16 16:22     ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 19/77] dtc: Introduce export symbols Herve Codina
2026-01-15  5:52   ` David Gibson
2026-01-16 16:27     ` Herve Codina
2026-01-19  5:51       ` David Gibson
2026-01-19 13:51         ` Herve Codina
2026-01-21  2:35           ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 20/77] dtc: Add support for /export/ dts keyword parsing Herve Codina
2026-01-15  5:57   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 21/77] checks: Handle export symbols in fixup_phandle_references() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 22/77] dtc: Add export symbols (/export/ keyword) in generated dts file Herve Codina
2026-01-12 14:19 ` [RFC PATCH 23/77] dtc: Introduce mark_local_exports() Herve Codina
2026-01-15  6:01   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 24/77] dtc: Introduce update_exports_ref() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 25/77] Add support for FDT_EXPORT_SYM dtb tag Herve Codina
2026-01-15  6:23   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 26/77] tests: metadata: Add export symbols with local references tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 27/77] dtc: Add support for export symbols sorting Herve Codina
2026-01-12 14:19 ` [RFC PATCH 28/77] tests: metadata: Add a test " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 29/77] Add support for FDT_EXPORT_SYM_REF dtb tag Herve Codina
2026-01-15  6:25   ` David Gibson
2026-01-19 15:46     ` Herve Codina
2026-01-29  1:36       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 30/77] tests: metadata: Add export symbols with external references tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 31/77] dtc: Introduce import symbols Herve Codina
2026-01-12 14:19 ` [RFC PATCH 32/77] dtc-parser: Introduce last_header_flags Herve Codina
2026-01-15  6:31   ` David Gibson
2026-01-19 14:11     ` Herve Codina
2026-01-21  2:37       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 33/77] dtc: Add support for /import/ dts keyword parsing Herve Codina
2026-01-12 14:19 ` [RFC PATCH 34/77] dtc: Add import symbols (/import/ keyword) in generated dts file Herve Codina
2026-01-12 14:19 ` [RFC PATCH 35/77] Add support for FDT_IMPORT_SYM dtb tag Herve Codina
2026-01-15  6:41   ` David Gibson
2026-01-19 14:36     ` Herve Codina
2026-01-28  2:25       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 36/77] tests: metadata: Add import symbols tests Herve Codina
2026-01-12 14:19 ` [RFC PATCH 37/77] dtc: Add support for import symbols sorting Herve Codina
2026-01-12 14:19 ` [RFC PATCH 38/77] tests: metadata: Improve sort test to check " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 39/77] check: Get 'chosen' node using get_subnode() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 40/77] dtc: Introduce dti_get_node_by_path() Herve Codina
2026-01-15  6:47   ` David Gibson
2026-01-19 15:52     ` Herve Codina
2026-01-29  1:38       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 41/77] dtc: Introduce dti_get_node_by_label() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 42/77] dtc: Introduce dti_get_node_by_phandle() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 43/77] dtc: Introduce dti_get_node_by_ref() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 44/77] dtc: Introduce dti_get_node_phandle() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 45/77] dtc: Introduce dti_get_property_by_label() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 46/77] dtc: Introduce dti_get_marker_label() Herve Codina
2026-01-15  6:51   ` David Gibson
2026-01-19 16:02     ` Herve Codina
2026-01-21  9:02       ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 47/77] dtc: Introduce dti_fill_fullpaths() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 48/77] dtc: Introduce orphan nodes Herve Codina
2026-01-12 14:19 ` [RFC PATCH 49/77] dtc: Handle orphan nodes in dti_get_xxx_by_yyy() Herve Codina
2026-01-15  6:55   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 50/77] dtc: Handle orphan nodes in mark_local_xxx() and update_xxx_ref() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 51/77] dtc: Avoid NULL fullpath for nodes in orphan trees Herve Codina
2026-01-15  6:56   ` David Gibson
2026-01-19 16:11     ` Herve Codina
2026-01-12 14:19 ` [RFC PATCH 52/77] checks: Perform checks for orphan nodes Herve Codina
2026-01-12 14:19 ` [RFC PATCH 53/77] dtc: Rename add_orphan_node() to plugin_add_orphan_node() Herve Codina
2026-01-12 14:19 ` [RFC PATCH 54/77] dtc: Add basic support for addon orphan nodes dts parsing Herve Codina
2026-01-12 14:19 ` [RFC PATCH 55/77] dtc: Add orphan nodes in generated dts file Herve Codina
2026-01-12 14:19 ` [RFC PATCH 56/77] Add support for FDT_BEGIN_NODE_REF_SYM dtb tag Herve Codina
2026-01-12 14:19 ` [RFC PATCH 57/77] tests: metadata: Add basic test for addon orphan nodes Herve Codina
2026-01-12 14:19 ` [RFC PATCH 58/77] dtc: Add support for missing root node in addon device-tree Herve Codina
2026-01-12 14:19 ` [RFC PATCH 59/77] tests: metadata: Add a test for addon without root node Herve Codina
2026-01-12 14:19 ` [RFC PATCH 60/77] dtc: Allow parser_get_node_by_ref() to return an orphan node for merging purpose Herve Codina
2026-01-12 14:19 ` [RFC PATCH 61/77] tests: metadata: Add a test related to orphan node merging Herve Codina
2026-01-12 14:19 ` [RFC PATCH 62/77] dtc: Add support for orphan nodes sorting Herve Codina
2026-01-12 14:19 ` [RFC PATCH 63/77] tests: metadata: Improve sort test to check " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 64/77] dtc: Add support for references by path involving orphan nodes Herve Codina
2026-01-15  7:01   ` David Gibson
2026-01-19 16:38     ` Herve Codina
2026-01-21  9:06       ` David Gibson
2026-01-21 16:30         ` Herve Codina
2026-01-29  2:00           ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 65/77] tests: metadata: Add a test " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 66/77] dtc: Add support for namespace labels references Herve Codina
2026-01-12 14:19 ` [RFC PATCH 67/77] tests: metadata: Add a test " Herve Codina
2026-01-12 14:19 ` [RFC PATCH 68/77] libfdt: Introduce fdt_getprop_by_offset_w() Herve Codina
2026-01-15  7:05   ` David Gibson
2026-01-12 14:19 ` [RFC PATCH 69/77] libfdt: Introduce fdt_getprop_offset() Herve Codina
2026-01-12 14:20 ` [RFC PATCH 70/77] libfdt: Add support for applying an addon on a base device-tree blob Herve Codina
2026-01-12 14:20 ` [RFC PATCH 71/77] Add fdtaddon tool to apply an addon Herve Codina
2026-01-12 14:20 ` [RFC PATCH 72/77] tests: Add a first basic test for fdtaddon Herve Codina
2026-01-12 14:20 ` [RFC PATCH 73/77] tests: fdtaddon: Add a basic test for addons using an orphan nodes Herve Codina
2026-01-12 14:20 ` [RFC PATCH 74/77] tests: fdtaddon: Add a basic test for addons with unresolved phandle references Herve Codina
2026-01-12 14:20 ` [RFC PATCH 75/77] tests: fdtaddon: Add a test for addons using namespace label references Herve Codina
2026-01-12 14:20 ` [RFC PATCH 76/77] tests: fdtaddon: Add a test for using 'stacked' addons Herve Codina
2026-01-12 14:20 ` [RFC PATCH 77/77] tests: fdtaddon: Add a test using more realistic dts and dtsa Herve Codina
2026-01-12 14:49 ` [RFC PATCH 00/77] Add support for dtb metadata and addon device-trees Ayush Singh
2026-01-13 18:44 ` Rob Herring
2026-01-14 16:18   ` Herve Codina
2026-01-19  6:00     ` David Gibson
2026-01-27 15:19       ` Herve Codina
2026-01-27 22:06         ` Rob Herring
2026-01-29  5:08           ` David Gibson
2026-01-15  0:08 ` David Gibson
2026-01-15  7:11   ` David Gibson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox