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

Simon Glass sjg at chromium.org
Mon Jul 5 17:55:54 CEST 2021


On Sat, 26 Jun 2021 at 13:23, Marek Vasut <marex at denx.de> wrote:
>
> 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.

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list