[PATCH v4 02/11] arm: mach-k3: Use FIT image data addr as fallback if 'load' prop is missing
Beleswar Prasad Padhi
b-padhi at ti.com
Tue Apr 28 12:57:47 CEST 2026
On 28/04/26 01:25, Tom Rini wrote:
> 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.
It is based on the previous patch...
Thanks,
Beleswar
More information about the U-Boot
mailing list