[PATCH v4 01/11] spl: Use FIT data address as fallback when 'load' property is absent
Beleswar Prasad Padhi
b-padhi at ti.com
Tue Apr 28 12:56:31 CEST 2026
Hi Tom,
On 28/04/26 01:24, Tom Rini wrote:
> On Sat, Apr 25, 2026 at 09:07:32AM +0530, Beleswar Padhi wrote:
>> In cases where the 'load' property is not defined in a FIT image node,
>> fallback to using the data address returned by `fit_image_get_data()`.
>> This enables FIT images to omit the 'load' property during FIT creation.
>>
>> Signed-off-by: Beleswar Padhi <b-padhi at ti.com>
>> ---
>> Cc: Simon Glass <sjg at chromium.org>
>>
>> v4: Changelog:
>> 1. None
>>
>> Link to v3:
>> https://lore.kernel.org/all/20251231173621.1069988-2-b-padhi@ti.com/
>>
>> v3: Changelog:
>> 1. None
>>
>> Link to v2:
>> https://lore.kernel.org/all/20250506104202.16741-3-b-padhi@ti.com/
>>
>> v2: Changelog:
>> 1. New patch. Add support to load images without 'load' property.
>>
>> common/spl/spl_fit.c | 16 +++++++++++++++-
>> 1 file changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
>> index 46ebcabe56a..87d01b8b8e6 100644
>> --- a/common/spl/spl_fit.c
>> +++ b/common/spl/spl_fit.c
>> @@ -799,6 +799,8 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
>> {
>> struct spl_image_info image_info;
>> struct spl_fit_info ctx;
>> + const void *fit_image_loadaddr;
>> + size_t fit_image_size;
>> int node = -1;
>> int ret;
>> int index = 0;
>> @@ -889,7 +891,19 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
>> if (firmware_node == node)
>> continue;
>>
>> - image_info.load_addr = 0;
>> + /*
>> + * If the 'load' property is not present in the image node,
>> + * use the FIT image's data address as the fallback load
>> + * address. This allows flexibility in omitting the load address
>> + * during FIT creation time.
>> + */
>> + ret = fit_image_get_data(ctx.fit, node,
>> + &fit_image_loadaddr, &fit_image_size);
>> + if (ret < 0)
>> + panic("Error accessing node = %d in FIT (%d)\n", node,
>> + ret);
>> +
>> + image_info.load_addr = (ulong)fit_image_loadaddr;
>> ret = load_simple_fit(info, offset, &ctx, node, &image_info);
>> if (ret < 0 && ret != -EBADSLT) {
>> printf("%s: can't load image loadables index %d (ret = %d)\n",
> I guess the real question here is, does the spec allow this to be
> omitted like that?
Could you please point me to the spec? I could not find it.
Thanks,
Beleswar
More information about the U-Boot
mailing list