[PATCH v2 22/50] image: Drop IMAGE_ENABLE_FIT

Simon Glass sjg at chromium.org
Thu May 6 16:24:10 CEST 2021


Make use of the host Kconfig for FIT. With this we can use
CONFIG_IS_ENABLED(FIT) directly in the host build, so drop the unnecessary
indirection.

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

(no changes since v1)

 arch/arm/mach-imx/hab.c |  2 +-
 common/bootm.c          | 10 +++++-----
 common/image-board.c    | 16 ++++++++--------
 common/image.c          |  2 +-
 include/fdt_support.h   |  2 +-
 include/image.h         | 22 +++++++++-------------
 tools/Kconfig           | 20 ++++++++++++++++++++
 7 files changed, 45 insertions(+), 29 deletions(-)

diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c
index 00bd157d0e0..cf522226f67 100644
--- a/arch/arm/mach-imx/hab.c
+++ b/arch/arm/mach-imx/hab.c
@@ -591,7 +591,7 @@ static ulong get_image_ivt_offset(ulong img_addr)
 		return (image_get_image_size((image_header_t *)img_addr)
 			+ 0x1000 - 1)  & ~(0x1000 - 1);
 #endif
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	case IMAGE_FORMAT_FIT:
 		return (fit_get_size(buf) + 0x1000 - 1)  & ~(0x1000 - 1);
 #endif
diff --git a/common/bootm.c b/common/bootm.c
index fe17d1da9e5..8d614fe140e 100644
--- a/common/bootm.c
+++ b/common/bootm.c
@@ -115,7 +115,7 @@ static int bootm_find_os(struct cmd_tbl *cmdtp, int flag, int argc,
 		images.os.arch = image_get_arch(os_hdr);
 		break;
 #endif
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	case IMAGE_FORMAT_FIT:
 		if (fit_image_get_type(images.fit_hdr_os,
 				       images.fit_noffset_os,
@@ -187,7 +187,7 @@ static int bootm_find_os(struct cmd_tbl *cmdtp, int flag, int argc,
 		/* Kernel entry point is the setup.bin */
 	} else if (images.legacy_hdr_valid) {
 		images.ep = image_get_ep(&images.legacy_hdr_os_copy);
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	} else if (images.fit_uname_os) {
 		int ret;
 
@@ -295,7 +295,7 @@ int bootm_find_images(int flag, int argc, char *const argv[], ulong start,
 		set_working_fdt_addr(map_to_sysmem(images.ft_addr));
 #endif
 
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	if (IS_ENABLED(CONFIG_FPGA)) {
 		/* find bitstreams */
 		ret = boot_get_fpga(argc, argv, &images, IH_ARCH_DEFAULT,
@@ -858,7 +858,7 @@ static const void *boot_get_kernel(struct cmd_tbl *cmdtp, int flag, int argc,
 	const void *buf;
 	const char	*fit_uname_config = NULL;
 	const char	*fit_uname_kernel = NULL;
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	int		os_noffset;
 #endif
 
@@ -916,7 +916,7 @@ static const void *boot_get_kernel(struct cmd_tbl *cmdtp, int flag, int argc,
 		bootstage_mark(BOOTSTAGE_ID_DECOMP_IMAGE);
 		break;
 #endif
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	case IMAGE_FORMAT_FIT:
 		os_noffset = fit_image_load(images, img_addr,
 				&fit_uname_kernel, &fit_uname_config,
diff --git a/common/image-board.c b/common/image-board.c
index 0f41ede1e98..05eeaaac8b0 100644
--- a/common/image-board.c
+++ b/common/image-board.c
@@ -282,7 +282,7 @@ int genimg_get_format(const void *img_addr)
 	if (image_check_magic(hdr))
 		return IMAGE_FORMAT_LEGACY;
 #endif
-#if IMAGE_ENABLE_FIT || IMAGE_ENABLE_OF_LIBFDT
+#if CONFIG_IS_ENABLED(FIT) || IMAGE_ENABLE_OF_LIBFDT
 	if (fdt_check_header(img_addr) == 0)
 		return IMAGE_FORMAT_FIT;
 #endif
@@ -307,7 +307,7 @@ int genimg_get_format(const void *img_addr)
  */
 int genimg_has_config(bootm_headers_t *images)
 {
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	if (images->fit_uname_cfg)
 		return 1;
 #endif
@@ -348,7 +348,7 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
 #ifdef CONFIG_SUPPORT_RAW_INITRD
 	char *end;
 #endif
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	const char	*fit_uname_config = images->fit_uname_cfg;
 	const char	*fit_uname_ramdisk = NULL;
 	ulong		default_addr;
@@ -380,7 +380,7 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
 		rd_len = 0;
 		rd_data = 0;
 	} else if (select || genimg_has_config(images)) {
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 		if (select) {
 			/*
 			 * If the init ramdisk comes from the FIT image and
@@ -409,7 +409,7 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
 				debug("*  ramdisk: cmdline image address = 0x%08lx\n",
 				      rd_addr);
 			}
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 		} else {
 			/* use FIT configuration provided in first bootm
 			 * command argument. If the property is not defined,
@@ -450,7 +450,7 @@ int boot_get_ramdisk(int argc, char *const argv[], bootm_headers_t *images,
 			rd_load = image_get_load(rd_hdr);
 			break;
 #endif
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 		case IMAGE_FORMAT_FIT:
 			rd_noffset = fit_image_load(images,
 						    rd_addr, &fit_uname_ramdisk,
@@ -623,14 +623,14 @@ error:
 int boot_get_setup(bootm_headers_t *images, u8 arch,
 		   ulong *setup_start, ulong *setup_len)
 {
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	return boot_get_setup_fit(images, arch, setup_start, setup_len);
 #else
 	return -ENOENT;
 #endif
 }
 
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 #if defined(CONFIG_FPGA)
 int boot_get_fpga(int argc, char *const argv[], bootm_headers_t *images,
 		  u8 arch, const ulong *ld_start, ulong * const ld_len)
diff --git a/common/image.c b/common/image.c
index 086ae609f29..f105b5e8857 100644
--- a/common/image.c
+++ b/common/image.c
@@ -18,7 +18,7 @@
 #include <status_led.h>
 #endif
 
-#if IMAGE_ENABLE_FIT || IMAGE_ENABLE_OF_LIBFDT
+#if CONFIG_IS_ENABLED(FIT) || IMAGE_ENABLE_OF_LIBFDT
 #include <linux/libfdt.h>
 #include <fdt_support.h>
 #endif
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 46eb1dbbb24..9b2929a982e 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -7,7 +7,7 @@
 #ifndef __FDT_SUPPORT_H
 #define __FDT_SUPPORT_H
 
-#ifdef CONFIG_OF_LIBFDT
+#if !defined(USE_HOSTCC) && defined(CONFIG_OF_LIBFDT)
 
 #include <asm/u-boot.h>
 #include <linux/libfdt.h>
diff --git a/include/image.h b/include/image.h
index 61da0abace7..522e9dbff5f 100644
--- a/include/image.h
+++ b/include/image.h
@@ -25,15 +25,12 @@ struct fdt_region;
 
 #ifdef USE_HOSTCC
 #include <sys/types.h>
+#include <linux/kconfig.h>
 
 /* new uImage format support enabled on host */
-#define IMAGE_ENABLE_FIT	1
 #define IMAGE_ENABLE_OF_LIBFDT	1
 #define CONFIG_FIT_VERBOSE	1 /* enable fit_format_{error,warning}() */
 #define CONFIG_FIT_ENABLE_RSASSA_PSS_SUPPORT 1
-#define CONFIG_FIT_SHA256
-#define CONFIG_FIT_SHA384
-#define CONFIG_FIT_SHA512
 
 #define IMAGE_ENABLE_IGNORE	0
 #define IMAGE_INDENT_STRING	""
@@ -48,12 +45,11 @@ struct fdt_region;
 #define IMAGE_ENABLE_IGNORE	1
 #define IMAGE_INDENT_STRING	"   "
 
-#define IMAGE_ENABLE_FIT	CONFIG_IS_ENABLED(FIT)
 #define IMAGE_ENABLE_OF_LIBFDT	CONFIG_IS_ENABLED(OF_LIBFDT)
 
 #endif /* USE_HOSTCC */
 
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 #include <hash.h>
 #include <linux/libfdt.h>
 #include <fdt_support.h>
@@ -106,7 +102,7 @@ struct fdt_region;
 #define IMAGE_ENABLE_SHA512	0
 #endif
 
-#endif /* IMAGE_ENABLE_FIT */
+#endif /* FIT */
 
 #ifdef CONFIG_SYS_BOOT_GET_CMDLINE
 # define IMAGE_BOOT_GET_CMDLINE		1
@@ -379,7 +375,7 @@ typedef struct bootm_headers {
 	image_header_t	legacy_hdr_os_copy;	/* header copy */
 	ulong		legacy_hdr_valid;
 
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 	const char	*fit_uname_cfg;	/* configuration node unit name */
 
 	void		*fit_hdr_os;	/* os FIT image header */
@@ -1034,7 +1030,7 @@ int booti_setup(ulong image, ulong *relocated_addr, ulong *size,
 
 #define FIT_MAX_HASH_LEN	HASH_MAX_DIGEST_SIZE
 
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 /* cmdline argument format parsing */
 int fit_parse_conf(const char *spec, ulong addr_curr,
 		ulong *addr, const char **conf_name);
@@ -1208,7 +1204,7 @@ int fit_conf_get_prop_node(const void *fit, int noffset,
 
 int fit_check_ramdisk(const void *fit, int os_noffset,
 		uint8_t arch, int verify);
-#endif /* IMAGE_ENABLE_FIT */
+#endif /* FIT */
 
 int calculate_hash(const void *data, int data_len, const char *algo,
 			uint8_t *value, int *value_len);
@@ -1237,7 +1233,7 @@ int calculate_hash(const void *data, int data_len, const char *algo,
 # define FIT_IMAGE_ENABLE_VERIFY	CONFIG_IS_ENABLED(FIT_SIGNATURE)
 #endif
 
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 #ifdef USE_HOSTCC
 void *image_get_host_blob(void);
 void image_set_host_blob(void *host_blob);
@@ -1251,7 +1247,7 @@ void image_set_host_blob(void *host_blob);
 #else
 #define IMAGE_ENABLE_BEST_MATCH	0
 #endif
-#endif /* IMAGE_ENABLE_FIT */
+#endif /* FIT */
 
 /*
  * Information passed to the signing routines
@@ -1389,7 +1385,7 @@ struct crypto_algo *image_get_crypto_algo(const char *full_name);
  */
 struct padding_algo *image_get_padding_algo(const char *name);
 
-#if IMAGE_ENABLE_FIT
+#if CONFIG_IS_ENABLED(FIT)
 
 /**
  * fit_image_verify_required_sigs() - Verify signatures marked as 'required'
diff --git a/tools/Kconfig b/tools/Kconfig
index 5c3e485a298..8af66a51c09 100644
--- a/tools/Kconfig
+++ b/tools/Kconfig
@@ -24,6 +24,26 @@ config HOST_FIT_PRINT
 	help
 	  Print the content of the FIT verbosely in the host build
 
+config HOST_FIT_SHA1
+	def_bool y
+	help
+	  Support SHA256 checksum of FIT image contents in the host build
+
+config HOST_FIT_SHA256
+	def_bool y
+	help
+	  Support SHA256 checksum of FIT image contents in the host build
+
+config HOST_FIT_SHA384
+	def_bool y
+	help
+	  Support SHA384 checksum of FIT image contents in the host build
+
+config HOST_FIT_SHA512
+	def_bool y
+	help
+	  Support SHA512 checksum of FIT image contents in the host build
+
 config HOST_FIT_SIGNATURE
 	def_bool y
 	help
-- 
2.31.1.607.g51e8a6a459-goog



More information about the U-Boot mailing list