Hi, On Thu, 10 Jun 2021 at 20:10, Marek Vasut <[email protected]> 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 <[email protected]> > Cc: Pantelis Antoniou <[email protected]> > Cc: Simon Glass <[email protected]> > Cc: Tom Rini <[email protected]> > --- > 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? Regards, Simon

