diff options
| -rw-r--r-- | README | 6 | ||||
| -rw-r--r-- | common/image-fit.c | 8 | ||||
| -rw-r--r-- | include/image.h | 33 | 
3 files changed, 42 insertions, 5 deletions
| @@ -2997,6 +2997,12 @@ FIT uImage format:  		use an arch-specific makefile fragment instead, for  		example if more than one image needs to be produced. +		CONFIG_FIT_SPL_PRINT +		Printing information about a FIT image adds quite a bit of +		code to SPL. So this is normally disabled in SPL. Use this +		option to re-enable it. This will affect the output of the +		bootm command when booting a FIT image. +  Modem Support:  -------------- diff --git a/common/image-fit.c b/common/image-fit.c index ec7b038db..254feecaa 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -124,6 +124,7 @@ static void fit_get_debug(const void *fit, int noffset,  	      fdt_strerror(err));  } +#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_FIT_SPL_PRINT)  /**   * fit_print_contents - prints out the contents of the FIT format image   * @fit: pointer to the FIT format image header @@ -402,6 +403,7 @@ void fit_image_print(const void *fit, int image_noffset, const char *p)  		}  	}  } +#endif  /**   * fit_get_desc - get node description property @@ -852,16 +854,16 @@ int fit_set_timestamp(void *fit, int noffset, time_t timestamp)  int calculate_hash(const void *data, int data_len, const char *algo,  			uint8_t *value, int *value_len)  { -	if (strcmp(algo, "crc32") == 0) { +	if (IMAGE_ENABLE_CRC32 && strcmp(algo, "crc32") == 0) {  		*((uint32_t *)value) = crc32_wd(0, data, data_len,  							CHUNKSZ_CRC32);  		*((uint32_t *)value) = cpu_to_uimage(*((uint32_t *)value));  		*value_len = 4; -	} else if (strcmp(algo, "sha1") == 0) { +	} else if (IMAGE_ENABLE_SHA1 && strcmp(algo, "sha1") == 0) {  		sha1_csum_wd((unsigned char *)data, data_len,  			     (unsigned char *)value, CHUNKSZ_SHA1);  		*value_len = 20; -	} else if (strcmp(algo, "md5") == 0) { +	} else if (IMAGE_ENABLE_MD5 && strcmp(algo, "md5") == 0) {  		md5_wd((unsigned char *)data, data_len, value, CHUNKSZ_MD5);  		*value_len = 16;  	} else { diff --git a/include/image.h b/include/image.h index 27c977e53..bfce86186 100644 --- a/include/image.h +++ b/include/image.h @@ -61,8 +61,37 @@  #if defined(CONFIG_FIT)  #include <libfdt.h>  #include <fdt_support.h> -#define CONFIG_MD5		/* FIT images need MD5 support */ -#define CONFIG_SHA1		/* and SHA1 */ +# ifdef CONFIG_SPL_BUILD +#  ifdef CONFIG_SPL_CRC32_SUPPORT +#   define IMAGE_ENABLE_CRC32	1 +#  endif +#  ifdef CONFIG_SPL_MD5_SUPPORT +#   define IMAGE_ENABLE_MD5	1 +#  endif +#  ifdef CONFIG_SPL_SHA1_SUPPORT +#   define IMAGE_ENABLE_SHA1	1 +#  endif +# else +#  define CONFIG_CRC32		/* FIT images need CRC32 support */ +#  define CONFIG_MD5		/* and MD5 */ +#  define CONFIG_SHA1		/* and SHA1 */ +#  define IMAGE_ENABLE_CRC32	1 +#  define IMAGE_ENABLE_MD5	1 +#  define IMAGE_ENABLE_SHA1	1 +# endif + +#ifndef IMAGE_ENABLE_CRC32 +#define IMAGE_ENABLE_CRC32	0 +#endif + +#ifndef IMAGE_ENABLE_MD5 +#define IMAGE_ENABLE_MD5	0 +#endif + +#ifndef IMAGE_ENABLE_SHA1 +#define IMAGE_ENABLE_SHA1	0 +#endif +  #endif  /* |