[PATCH] fit: Load DTO into temporary buffer and ignore load address

Marek Vasut marex at denx.de
Sat Jun 26 21:23:40 CEST 2021


On 6/26/21 8:31 PM, Simon Glass wrote:
> Hi,
> 
> On Thu, 10 Jun 2021 at 20:10, Marek Vasut <marex at denx.de> wrote:
>>
>> The current fitImage DTO implementation expects each fitImage image
>> subnode containing DTO to have 'load' property, pointing somewhere
>> into memory where the DTO will be loaded. The address in the 'load'
>> property must be different then the base DT load address and there
>> must be sufficient amount of space between those two addresses.
>> Selecting and using such hard-coded addresses is fragile, error
>> prone and difficult to port even across devices with the same SoC
>> and different DRAM sizes.
>>
>> The DTO cannot be applied in-place because fdt_overlay_apply_verbose()
>> modifies the DTO when applying it onto the base DT, so if the DTO was
>> used in place within the fitImage, call to fdt_overlay_apply_verbose()
>> would corrupt the fitImage.
>>
>> Instead of copying the DTO to a specific hard-coded load address,
>> allocate a buffer, copy the DTO into that buffer, apply the DTO onto
>> the base DT, and free the buffer.
>>
>> The upside of this approach is that it is no longer necessary to
>> select and hard-code specific DTO load address into the DTO. The
>> slight downside is the new malloc()/free() overhead for each DTO,
>> but that is negligible (*).
>>
>> (*) on iMX8MM/MN and STM32MP1
>>
>> Signed-off-by: Marek Vasut <marex at denx.de>
>> Cc: Pantelis Antoniou <pantelis.antoniou at konsulko.com>
>> Cc: Simon Glass <sjg at chromium.org>
>> Cc: Tom Rini <trini at konsulko.com>
>> ---
>>   common/image-fit.c | 31 +++++++++++++++++++++++++++----
>>   1 file changed, 27 insertions(+), 4 deletions(-)
>>
> 
> Is this tested by the existing overlay test, or do we need something new?

Overlay test should be sufficient.


More information about the U-Boot mailing list