[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