[PATCH v4 02/11] arm: mach-k3: Use FIT image data addr as fallback if 'load' prop is missing
Tom Rini
trini at konsulko.com
Mon Apr 27 21:55:27 CEST 2026
On Sat, Apr 25, 2026 at 09:07:33AM +0530, Beleswar Padhi wrote:
> It is possible for FIT Images to skip mentioning the pre-defined 'load'
> address property. In those cases, SPL uses the actual address of the FIT
> Image data as the fallback load address. Use this FIT data address for
> referencing the image when the 'load' property is missing.
>
> Signed-off-by: Beleswar Padhi <b-padhi at ti.com>
> ---
> v4: Changelog:
> 1. None
>
> Link to v3:
> https://lore.kernel.org/all/20251231173621.1069988-3-b-padhi@ti.com/
>
> v3: Changelog:
> 1. None
>
> Link to v2:
> https://lore.kernel.org/all/20250506104202.16741-6-b-padhi@ti.com/
>
> v2: Changelog:
> 1. New patch. Fetch FDT Data addr for accessing image if 'load' prop is
> not present in node.
>
> arch/arm/mach-k3/r5/common.c | 23 +++++++++++++++++++++--
> 1 file changed, 21 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-k3/r5/common.c b/arch/arm/mach-k3/r5/common.c
> index 484d96f9536..50c4231655e 100644
> --- a/arch/arm/mach-k3/r5/common.c
> +++ b/arch/arm/mach-k3/r5/common.c
> @@ -328,12 +328,15 @@ void board_fit_image_post_process(const void *fit, int node, void **p_image,
> size_t *p_size)
> {
> int len;
> - int i;
> + int i, ret;
> const char *os;
> - u32 addr;
> + u32 addr, load_addr;
> + const void *fit_image_loadaddr;
> + size_t fit_image_size;
>
> os = fdt_getprop(fit, node, "os", &len);
> addr = fdt_getprop_u32_default_node(fit, node, 0, "entry", -1);
> + load_addr = fdt_getprop_u32_default_node(fit, node, 0, "load", -1);
>
> debug("%s: processing image: addr=%x, size=%d, os=%s\n", __func__,
> addr, *p_size, os);
> @@ -342,6 +345,22 @@ void board_fit_image_post_process(const void *fit, int node, void **p_image,
> if (!strcmp(os, image_os_match[i])) {
> fit_image_info[i].image_start = addr;
> fit_image_info[i].image_len = *p_size;
> + /*
> + * If the 'load' property is missing in the FIT image,
> + * fall back to using the actual in-memory address of
> + * the FIT image data.
> + */
> + if (load_addr == -1) {
> + ret = fit_image_get_data(fit, node,
> + &fit_image_loadaddr,
> + &fit_image_size);
> + if (ret < 0)
> + panic("Error accessing node os = %s in FIT (%d)\n",
> + os, ret);
> + fit_image_info[i].load = (ulong)fit_image_loadaddr;
> + } else {
> + fit_image_info[i].load = load_addr;
> + }
> debug("%s: matched image for ID %d\n", __func__, i);
> break;
> }
Does the spec allow this, or is this based on the previous patch?
Thanks.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20260427/8f4de9bc/attachment.sig>
More information about the U-Boot
mailing list