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 <s...@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

Reply via email to