Hi all, This series improves CONFIG_SPL_LOAD_FIT_FULL support on RISC-V, primarily to enable loading OpenSBI as firmware and recording loadable images (e.g., U-Boot) into the FDT passed to the next boot stage. This aligns spl_load_fit_image() with the behaviour already present in spl_load_simple_fit().
Patch summary: 1/6: Allow IH_OS_OPENSBI in fit_image_load() so OpenSBI firmware can be loaded without error. 2/6: Enable spl_load_fit_image() for RAM boot when CONFIG_SPL_LOAD_FIT_FULL is selected. 3/6: Use map_sysmem() for FDT address handling to keep the code sandbox‑friendly. 4/6: Initialize spl_image_info in spl_test_load()/spl_test_load_fit_full(). 5/6: Record loadables into spl_image->fdt_addr during FIT load, providing the entry addresses needed by subsequent stages (e.g., OpenSBI). 6/6: Add a unit test to verify that loadables are correctly recorded in the FDT. Tested with provided sandbox test with a grafted FIT image containing OpenSBI (firmware), U‑Boot (loadable) and a DTB. Signed-off-by: Nikita Shubin <[email protected]> --- Changes in v2: Addressed all review comments from Simon Glass: - Patch 2/6: common: spl: ram: Add LOAD_FIT_FULL support: - Reworded commit message to explain that FULL parser is needed for full image verification (CONFIG_SPL_FIT_FULL_CHECK) - Added fallback: if spl_load_fit_image() fails, try spl_load_simple_fit() - Mentioned fallback behavior in commit message - Patch 4/6: test: spl: Zero spl_image_info: - New patch added to zero-initialize spl_image_info structures in tests - Patch 5/6: spl: fit: Record loadables to spl_image->fdt_addr - Fixed typo: "lodable" → "loadable" (subject, commit message, code) - Replaced -1 with FDT_ERROR (from image.h) for missing entry point - Moved FDT size adjustment before loop: use fdt_shrink_to_minimum() once instead of fdt_increase_size() per iteration - Extracted duplicated code into helper function fit_record_loadable() - Replaced debug() with log_debug() - Removed backslashes from debug string concatenation - Added note about gd->fdt_blob limitation in commit message - Patch 6/6: spl: fit: Add test to check loadables - Fixed typo: "lodables" → "loadables" (subject, commit message) - Removed unused variables (uname, str) - Added FDT size fix after fdt_finish() to prevent external data offset drift - Replaced #address-cells = 2 with ADDRESS_CELLS macro - Replaced fdt_property_u64() with fdt_property_addr() for entry/load properties - Extracted duplicated image node creation into helper append_fit_node() - Fixed assertion: ut_assert(noffset > 0) instead of ut_assert(noffset) - Link to v1: https://patch.msgid.link/[email protected] --- Nikita Shubin (6): image: fit: allow IH_OS_OPENSBI in fit_image_load() common: spl: ram: Add LOAD_FIT_FULL support spl: fit: Use map_sysmem() with buffers for fdt address test: spl: Zero spl_image_info spl: fit: Record loadables to spl_image->fdt_addr spl: fit: Add test to check loadables boot/image-fit.c | 1 + common/spl/spl_fit.c | 66 ++++++++++++----- common/spl/spl_ram.c | 19 +++-- test/image/spl_load.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++ test/image/spl_load_os.c | 4 +- 5 files changed, 250 insertions(+), 24 deletions(-) --- base-commit: cc8c034e78eba6b2a3845783889b80753bb1af1e change-id: 20260731-riscv-full-fit-support-320d38f8311e Best regards, -- Nikita Shubin
