[Concept,00/30] fit: Improve and test the code to print FIT info

Message ID 20251120025614.2215587-1-sjg@u-boot.org
Headers
Series fit: Improve and test the code to print FIT info |

Message

Simon Glass Nov. 20, 2025, 2:55 a.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

The code for printing information about FITs is fairly old and not that
easy to maintain. It also lacks tests.

This series adds some tests, moves the code into its own file and then
adds a series of helpers to deal with the intricacies of printing each
item.

This provides a binary-size reduction of about 320 bytes on aarch64.


Simon Glass (30):
  docs: Merge .claude/README.md into CLAUDE.md
  tools: Fix debug() to avoid unused-variable warnings
  test: Increase expect_str/actual_str buffer size
  fit: Remove unused len parameter from fit_get_name()
  test: Add a test for FIT image printing
  test: Add signature-testing to the FIT-printing test
  test: fit: Test printing a FIT with multiple FDTs
  test: fit: Test the remaining features and edge cases
  test: fit: Add test for missing FIT description
  test: fit: Add pytest for mkimage output
  fit: Refactor fit_print_contents() to use new fit_print()
  fit: Move printing code to its own file
  fit: Drop showing an unused 'required' property
  fit: Add a context struct for FIT-printing
  fit: Put the indent string into print context
  fit: Create some helpers for printing
  fit: Use emit_label() helper in fit_image_print()
  fit: Use emit_label() helper in fit_conf_print()
  fit: Add a a function to print labels with values
  fit: Change indent from string to int
  fit: Move values one column to the right
  fit: Use emit_label_val() where possible
  fit: Add a helper to output optional properties
  fit: Add a helper for timestamp printing
  fit: Add a helper for stringlist properties
  fit: Add a helper for printing descriptions
  fit: Add a helper for address printing
  fit: Use a boolean to simplify type checks
  fit: Add a helper to iterate through hash/signature nodes
  fit: Use the libfdt subnode iterator

 .claude/README.md => CLAUDE.md  |   3 +
 boot/Makefile                   |   1 +
 boot/fit_print.c                | 494 ++++++++++++++++++++++++++++++++
 boot/image-cipher.c             |   2 +-
 boot/image-fit-sig.c            |  24 +-
 boot/image-fit.c                | 442 +---------------------------
 common/spl/spl_fit.c            |  12 +-
 common/update.c                 |   4 +-
 drivers/fpga/socfpga_arria10.c  |   2 +-
 include/image.h                 |  84 +++++-
 include/test/test.h             |   4 +-
 test/boot/Makefile              |   1 +
 test/boot/fit_print.c           | 192 +++++++++++++
 test/py/tests/test_fit_print.py | 431 ++++++++++++++++++++++++++++
 tools/Makefile                  |   1 +
 tools/fit_image.c               |  15 +-
 tools/fit_info.c                |   2 +-
 tools/image-host.c              |  30 +-
 tools/mkimage.h                 |   8 +-
 19 files changed, 1272 insertions(+), 480 deletions(-)
 rename .claude/README.md => CLAUDE.md (93%)
 create mode 100644 boot/fit_print.c
 create mode 100644 test/boot/fit_print.c
 create mode 100644 test/py/tests/test_fit_print.py