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

Reply via email to