[PATCH 22/49] image: Drop IMAGE_ENABLE_OF_LIBFDT

Simon Glass
2021-05-03T23:11:09Z

Add a host Kconfig for OF_LIBFDT. With this we can use
CONFIG_IS_ENABLED(OF_LIBFDT) directly in the host build, so drop the
unnecessary indirection.

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

(no changes since v1)

arch/arc/lib/bootm.c | 2 +-
arch/arm/lib/bootm.c | 4 ++--
arch/microblaze/lib/bootm.c | 2 +-
arch/nds32/lib/bootm.c | 4 ++--
arch/riscv/lib/bootm.c | 4 ++--
board/synopsys/hsdk/hsdk.c | 2 +-
common/bootm.c | 4 ++--
common/image-board.c | 8 ++++----
common/image.c | 2 +-
include/image.h | 3 ---
lib/lmb.c | 2 +-
tools/Kconfig | 5 +++++
12 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/arch/arc/lib/bootm.c b/arch/arc/lib/bootm.c
index 8a8d394a5f0..2e139611e59 100644
--- a/arch/arc/lib/bootm.c
+++ b/arch/arc/lib/bootm.c
@@ -93,7 +93,7 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
"(fake run for tracing)" : "");
bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel");

- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len) {
r0 = 2;
r2 = (unsigned int)images->ft_addr;
} else {
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index f60ee3a7e6a..493c9e1df19 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -244,7 +244,7 @@ static void boot_prep_linux(bootm_headers_t *images)
{
char *commandline = env_get("bootargs");

- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len) {
#ifdef CONFIG_OF_LIBFDT
debug("using: FDT\n");
if (image_setup_linux(images)) {
@@ -401,7 +401,7 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
bootstage_mark(BOOTSTAGE_ID_RUN_OS);
announce_and_cleanup(fake);

- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len)
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len)
r2 = (unsigned long)images->ft_addr;
else
r2 = gd->bd->bi_boot_params;
diff --git a/arch/microblaze/lib/bootm.c b/arch/microblaze/lib/bootm.c
index 6695ac63c77..1e041fb5685 100644
--- a/arch/microblaze/lib/bootm.c
+++ b/arch/microblaze/lib/bootm.c
@@ -101,7 +101,7 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)

static void boot_prep_linux(bootm_headers_t *images)
{
- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len) {
debug("using: FDT\n");
if (image_setup_linux(images)) {
printf("FDT creation failed! hanging...");
diff --git a/arch/nds32/lib/bootm.c b/arch/nds32/lib/bootm.c
index b3b8bc29037..394564a3f5b 100644
--- a/arch/nds32/lib/bootm.c
+++ b/arch/nds32/lib/bootm.c
@@ -73,7 +73,7 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
debug("## Transferring control to Linux (at address %08lx) ...\n",
(ulong)theKernel);

- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len) {
#ifdef CONFIG_OF_LIBFDT
debug("using: FDT\n");
if (image_setup_linux(images)) {
@@ -118,7 +118,7 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
#endif
}
cleanup_before_linux();
- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len)
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len)
theKernel(0, machid, (unsigned long)images->ft_addr);
else
theKernel(0, machid, bd->bi_boot_params);
diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c
index 8dd18205403..6c9e7eb6547 100644
--- a/arch/riscv/lib/bootm.c
+++ b/arch/riscv/lib/bootm.c
@@ -64,7 +64,7 @@ static void announce_and_cleanup(int fake)

static void boot_prep_linux(bootm_headers_t *images)
{
- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len) {
#ifdef CONFIG_OF_LIBFDT
debug("using: FDT\n");
if (image_setup_linux(images)) {
@@ -96,7 +96,7 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
announce_and_cleanup(fake);

if (!fake) {
- if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len) {
#ifdef CONFIG_SMP
ret = smp_call_function(images->ep,
(ulong)images->ft_addr, 0, 0);
diff --git a/board/synopsys/hsdk/hsdk.c b/board/synopsys/hsdk/hsdk.c
index 892b94bb083..226fbba6296 100644
--- a/board/synopsys/hsdk/hsdk.c
+++ b/board/synopsys/hsdk/hsdk.c
@@ -871,7 +871,7 @@ int board_prep_linux(bootm_headers_t *images)
if (env_common.core_mask.val == ALL_CPU_MASK)
return 0;

- if (!IMAGE_ENABLE_OF_LIBFDT || !images->ft_len) {
+ if (!CONFIG_IS_ENABLED(OF_LIBFDT) || !images->ft_len) {
pr_err("WARN: core_mask setup will work properly only with external DTB!\n");
return 0;
}
diff --git a/common/bootm.c b/common/bootm.c
index 8d614fe140e..4482f84b40a 100644
--- a/common/bootm.c
+++ b/common/bootm.c
@@ -271,7 +271,7 @@ int bootm_find_images(int flag, int argc, char *const argv[], ulong start,
return 1;
}

-#if IMAGE_ENABLE_OF_LIBFDT
+#if CONFIG_IS_ENABLED(OF_LIBFDT)
/* find flattened device tree */
ret = boot_get_fdt(flag, argc, argv, IH_ARCH_DEFAULT, &images,
&images.ft_addr, &images.ft_len);
@@ -706,7 +706,7 @@ int do_bootm_states(struct cmd_tbl *cmdtp, int flag, int argc,
}
}
#endif
-#if IMAGE_ENABLE_OF_LIBFDT && defined(CONFIG_LMB)
+#if CONFIG_IS_ENABLED(OF_LIBFDT) && defined(CONFIG_LMB)
if (!ret && (states & BOOTM_STATE_FDT)) {
boot_fdt_add_mem_rsv_regions(&images->lmb, images->ft_addr);
ret = boot_relocate_fdt(&images->lmb, &images->ft_addr,
diff --git a/common/image-board.c b/common/image-board.c
index 05eeaaac8b0..0b9809c3f6b 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 CONFIG_IS_ENABLED(FIT) || IMAGE_ENABLE_OF_LIBFDT
+#if CONFIG_IS_ENABLED(FIT) || CONFIG_IS_ENABLED(OF_LIBFDT)
if (fdt_check_header(img_addr) == 0)
return IMAGE_FORMAT_FIT;
#endif
@@ -895,7 +895,7 @@ int image_setup_linux(bootm_headers_t *images)
struct lmb *lmb = &images->lmb;
int ret;

- if (IMAGE_ENABLE_OF_LIBFDT)
+ if (CONFIG_IS_ENABLED(OF_LIBFDT))
boot_fdt_add_mem_rsv_regions(lmb, *of_flat_tree);

if (IMAGE_BOOT_GET_CMDLINE) {
@@ -907,13 +907,13 @@ int image_setup_linux(bootm_headers_t *images)
}
}

- if (IMAGE_ENABLE_OF_LIBFDT) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT)) {
ret = boot_relocate_fdt(lmb, of_flat_tree, &of_size);
if (ret)
return ret;
}

- if (IMAGE_ENABLE_OF_LIBFDT && of_size) {
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && of_size) {
ret = image_setup_libfdt(images, *of_flat_tree, of_size, lmb);
if (ret)
return ret;
diff --git a/common/image.c b/common/image.c
index f105b5e8857..9531a6d6820 100644
--- a/common/image.c
+++ b/common/image.c
@@ -18,7 +18,7 @@
#include <status_led.h>
#endif

-#if CONFIG_IS_ENABLED(FIT) || IMAGE_ENABLE_OF_LIBFDT
+#if CONFIG_IS_ENABLED(FIT) || CONFIG_IS_ENABLED(OF_LIBFDT)
#include <linux/libfdt.h>
#include <fdt_support.h>
#endif
diff --git a/include/image.h b/include/image.h
index 522e9dbff5f..bdf19a4cc04 100644
--- a/include/image.h
+++ b/include/image.h
@@ -28,7 +28,6 @@ struct fdt_region;
#include <linux/kconfig.h>

/* new uImage format support enabled on host */
-#define IMAGE_ENABLE_OF_LIBFDT 1
#define CONFIG_FIT_VERBOSE 1 /* enable fit_format_{error,warning}() */
#define CONFIG_FIT_ENABLE_RSASSA_PSS_SUPPORT 1

@@ -45,8 +44,6 @@ struct fdt_region;
#define IMAGE_ENABLE_IGNORE 1
#define IMAGE_INDENT_STRING " "

-#define IMAGE_ENABLE_OF_LIBFDT CONFIG_IS_ENABLED(OF_LIBFDT)
-
#endif /* USE_HOSTCC */

#if CONFIG_IS_ENABLED(FIT)
diff --git a/lib/lmb.c b/lib/lmb.c
index c08c4d942b7..d50beffab78 100644
--- a/lib/lmb.c
+++ b/lib/lmb.c
@@ -113,7 +113,7 @@ static void lmb_reserve_common(struct lmb *lmb, void *fdt_blob)
arch_lmb_reserve(lmb);
board_lmb_reserve(lmb);

- if (IMAGE_ENABLE_OF_LIBFDT && fdt_blob)
+ if (CONFIG_IS_ENABLED(OF_LIBFDT) && fdt_blob)
boot_fdt_add_mem_rsv_regions(lmb, fdt_blob);
}

diff --git a/tools/Kconfig b/tools/Kconfig
index 8af66a51c09..c67dc04f5ed 100644
--- a/tools/Kconfig
+++ b/tools/Kconfig
@@ -54,6 +54,11 @@ config HOST_FIT_SIGNATURE_MAX_SIZE
depends on HOST_FIT_SIGNATURE
default 0x10000000

+config HOST_OF_LIBFDT
+ def_bool y
+ help
+ Enable libfdt support in the host build.
+
config HOST_SHA1
def_bool y
help
--
2.31.1.527.g47e6f16901-goog