[PATCH v1 0/3] boot/fit: use fdt_for_each_subnode() in image-fit.c

Aristo Chen aristo.chen at canonical.com
Fri May 8 23:31:58 CEST 2026


This series ends with replacing the verbose fdt_next_node() + ndepth
idiom in boot/image-fit.c with fdt_for_each_subnode(), bringing the
file in line with boot/image-fit-sig.c. Six of the seven sites in
image-fit.c predate the macro by 2-6 years; the seventh was
copy-pasted from a neighbour in 2015 just after the macro landed.
The old idiom is legacy, not a deliberate technical choice.

Converting straight to the macro turned out to need a prerequisite,
which is patch 1. fit_print_contents() reads the default-config
property using the loop variable left over after iterating /images
children. With /images defined first in the source (the conventional
layout) libfdt's walker happens to leave that variable pointing at
/configurations and the read works. With /configurations defined
first the read returns NULL and the "Default Configuration" line is
silently omitted. fdt_for_each_subnode()'s post-loop value is
unconditionally a negative error code, so a naive conversion would
have made the missing line the unconditional behaviour. Patch 1
reads the property from confs_noffset directly and removes the
layout dependency.

Patch 2 adds a regression test for the configs-before-images
layout, which had no coverage. 

Patch 3 is the mechanical conversion at all seven sites,
equivalence-preserving as described in the per-patch message.

Aristo Chen (3):
  boot/fit: read default-config property from the configurations node
  test: fit: regression test for default-config print with reversed node
    order
  boot/fit: use fdt_for_each_subnode() in image-fit.c

 boot/image-fit.c          | 109 ++++++++++----------------------------
 test/py/tests/test_fit.py |  53 ++++++++++++++++++
 2 files changed, 81 insertions(+), 81 deletions(-)

-- 
2.43.0



More information about the U-Boot mailing list