[PATCH RFC] image: apply FDTOs on FDT image node without a load property

Marek Vasut marex at denx.de
Tue Jan 14 14:46:15 CET 2025


On 1/14/25 12:04 PM, Quentin Schulz wrote:
[...]

>> This has to be updated to handle the mkimage -E case too. Basically, 
>> if the FDT is outside of the fitImage tree area, but still in the 
>> trailing blob area at the end of fitImage generated with mkimage -E, 
>> then any modification to the DT which would result in resize may 
>> either fail or corrupt the surrounding blobs.
>>
>> The safe but heavy handed option would be to relocate unconditionally .
>>
> 
> Will do.

Thank you

>>> -        /* check is simplified; fit load checks for overlaps */
>>> -        printf("Overlayed FDT requires relocation\n");
>>> -        fdt_noffset = -EBADF;
>>> -        goto out;
>>> -    }
>>> +        /* Cannot overlay an FDT stored inside the fitImage, so 
>>> let's relocate */
>>> +        char *of_flat_tree = map_sysmem(load, len);
>>> -    base = map_sysmem(load, len);
>>> +        len = ALIGN(fdt_totalsize(load), SZ_4K);
>>> +        if (boot_relocate_fdt(&of_flat_tree, &len)) {
>>
>> Please print the error value in case of failure here, it is useful for 
>> debugging.
>>
> 
> The function returns 0 on success, 1 on any error, not sure it's that 
> useful as it'll always be 1. Do we want to anticipate this function 
> being updated to have other error codes in the future?
The other functions in boot/image-fdt.c already return proper error 
codes, so it is possible this one will be updated to return them too, 
eventually.


More information about the U-Boot mailing list