[SPAM] [PATCH 20/26] test: spl: Add functions to create images

Xavier Drudis Ferran xdrudis at tinet.cat
Fri Oct 13 21:44:01 CEST 2023


El Wed, Oct 11, 2023 at 09:56:20PM -0400, Sean Anderson deia:
> This add some basic functions to create images, and a test for said
> functions. This is not intended to be a test of the image parsing
> functions, but rather a framework for creating minimal images for testing
> load methods. That said, it does do an OK job at finding bugs in the image
> parsing directly.
> 
> Since we have two methods for loading/parsing FIT images, add LOAD_FIT_FULL
> as a separate CI run.
> 
> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
> ---
> 
>  .azure-pipelines.yml             |   4 +
>  .gitlab-ci.yml                   |   7 +
>  arch/sandbox/cpu/u-boot-spl.lds  |   2 +
>  configs/sandbox_noinst_defconfig |   6 +
>  configs/sandbox_spl_defconfig    |   6 +
>  include/test/spl.h               | 117 ++++++++++
>  test/image/spl_load.c            | 352 +++++++++++++++++++++++++++++++
>  test/image/spl_load_os.c         |   5 +-
>  8 files changed, 495 insertions(+), 4 deletions(-)
>  create mode 100644 include/test/spl.h
>
[...]
> diff --git a/test/image/spl_load.c b/test/image/spl_load.c
> index 1a57bf846d2..ca3777cab37 100644
> --- a/test/image/spl_load.c
> +++ b/test/image/spl_load.c
> @@ -4,7 +4,15 @@
>   */
>  
>  #include <common.h>
> +#include <image.h>
> +#include <imx_container.h>
>  #include <mapmem.h>
> +#include <memalign.h>
> +#include <rand.h>
> +#include <spl.h>
> +#include <test/spl.h>
> +#include <test/ut.h>
> +#include <u-boot/crc.h>
>  
>  int board_fit_config_name_match(const char *name)
>  {
> @@ -15,3 +23,347 @@ struct legacy_img_hdr *spl_get_load_buffer(ssize_t offset, size_t size)
>  {
>  	return map_sysmem(0x100000, 0);
>  }
> +
> +/* Try to reuse the load buffer to conserve memory */
> +void *board_spl_fit_buffer_addr(ulong fit_size, int sectors, int bl_len)
> +{
> +	static void *buf;
> +	static size_t size;
> +	static bool invalid = true;
> +
> +	if (invalid || size < sectors * bl_len) {
> +		if (!invalid)
> +			free(buf);
> +		buf = malloc_cache_aligned(sectors * bl_len);
> +		invalid = false;

Should size be updated here or am I being thick ?
                size = ALIGN(sectors * bl_len, ARCH_DMA_MINALIGN);
		
> +	}
> +	return buf;
> +}
> +


More information about the U-Boot mailing list