On 22. 03. 19 15:39, Jean-Jacques Hiblot wrote: > To allow for dynamic allocation of the area where the image will be loaded, > adapt spl_load_fit_image() to be able to get the size of the image without > doing to the actual load. > > Signed-off-by: Jean-Jacques Hiblot <jjhib...@ti.com> > --- > > common/spl/spl_fit.c | 26 +++++++++++++++++++++----- > 1 file changed, 21 insertions(+), 5 deletions(-) > > diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c > index db436268cb..90bf458ee8 100644 > --- a/common/spl/spl_fit.c > +++ b/common/spl/spl_fit.c > @@ -164,12 +164,15 @@ static int get_aligned_image_size(struct spl_load_info > *info, int data_size, > * If the FIT node does not contain a "load" (address) property, > * the image gets loaded to the address pointed to by the > * load_addr member in this struct. > + * @no_load: If true, the data is not loaded from the medium. Used to get > + * the size of the data in the case of a dynamic allocation of > + * the memory. > * > * Return: 0 on success or a negative error number. > */ > static int spl_load_fit_image(struct spl_load_info *info, ulong sector, > void *fit, ulong base_offset, int node, > - struct spl_image_info *image_info) > + struct spl_image_info *image_info, bool no_load) > { > int offset; > size_t length; > @@ -216,7 +219,20 @@ static int spl_load_fit_image(struct spl_load_info > *info, ulong sector, > > load_ptr = (load_addr + align_len) & ~align_len; > length = len; > + } else { > + /* Embedded data */ > + if (fit_image_get_data(fit, node, &data, &length)) { > + puts("Cannot get image data/size\n"); > + return -ENOENT; > + } > + } > > + if (no_load && image_info) { > + image_info->size = length; > + return 0; > + }
This is return you size of image in FIT but not size of image after uncompression. There is SPL_GZIP support and that's the size you should work with. M _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot