[PATCH v4 2/6] tools: Reorganize mkfwumdata tool into fwumdata_src directory

Kory Maincent
2026-02-23T13:19:54Z

Update FWU metadata-related tools by moving mkfwumdata.c into a new
tools/fwumdata_src/ directory structure. This refactoring prepares for the
addition of the fwumdata runtime tool, which will allow editing FWU
metadata directly from the target.

The Kconfig and Makefile entries are also moved into separate files within
the new directory (Kconfig and fwumdata.mk respectively) to keep all FWU
metadata tool configurations together and improve maintainability.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
MAINTAINERS | 3 ++-
tools/Kconfig | 9 +--------
tools/Makefile | 4 +---
tools/fwumdata_src/Kconfig | 8 ++++++++
tools/fwumdata_src/fwumdata.mk | 7 +++++++
tools/{ => fwumdata_src}/mkfwumdata.c | 0
6 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index f8d4f6ee8b2..a4903929eea 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1242,9 +1242,10 @@ FWU Multi Bank Update
M: Sughosh Ganu <sughosh.ganu@arm.com>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-efi.git
+F: doc/mkfwumdata.1
F: lib/fwu_updates/*
F: drivers/fwu-mdata/*
-F: tools/mkfwumdata.c
+F: tools/fwumdata_src/mkfwumdata.c

GATEWORKS_SC
M: Tim Harvey <tharvey@gateworks.com>
diff --git a/tools/Kconfig b/tools/Kconfig
index a1b4d701ac7..ef33295b8ec 100644
--- a/tools/Kconfig
+++ b/tools/Kconfig
@@ -194,13 +194,6 @@ config LUT_SEQUENCE
help
Look Up Table Sequence

-config TOOLS_MKFWUMDATA
- bool "Build mkfwumdata command"
- default y if FWU_MULTI_BANK_UPDATE
- help
- This command allows users to create a raw image of the FWU
- metadata for initial installation of the FWU multi bank
- update on the board. The installation method depends on
- the platform.
+source tools/fwumdata_src/Kconfig

endmenu
diff --git a/tools/Makefile b/tools/Makefile
index 0ac683ac3ec..1908a63b42c 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -272,9 +272,7 @@ mkeficapsule-objs := generated/lib/uuid.o \
mkeficapsule.o
hostprogs-always-$(CONFIG_TOOLS_MKEFICAPSULE) += mkeficapsule

-mkfwumdata-objs := mkfwumdata.o generated/lib/crc32.o
-HOSTLDLIBS_mkfwumdata += -luuid
-hostprogs-always-$(CONFIG_TOOLS_MKFWUMDATA) += mkfwumdata
+include tools/fwumdata_src/fwumdata.mk

# We build some files with extra pedantic flags to try to minimize things
# that won't build on some weird host compiler -- though there are lots of
diff --git a/tools/fwumdata_src/Kconfig b/tools/fwumdata_src/Kconfig
new file mode 100644
index 00000000000..c033c560e8d
--- /dev/null
+++ b/tools/fwumdata_src/Kconfig
@@ -0,0 +1,8 @@
+config TOOLS_MKFWUMDATA
+ bool "Build mkfwumdata command"
+ default y if FWU_MULTI_BANK_UPDATE
+ help
+ This command allows users to create a raw image of the FWU
+ metadata for initial installation of the FWU multi bank
+ update on the board. The installation method depends on
+ the platform.
diff --git a/tools/fwumdata_src/fwumdata.mk b/tools/fwumdata_src/fwumdata.mk
new file mode 100644
index 00000000000..00f4ae50dbb
--- /dev/null
+++ b/tools/fwumdata_src/fwumdata.mk
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2025, Kory Maincent <kory.maincent@bootlin.com>
+
+mkfwumdata-objs := fwumdata_src/mkfwumdata.o generated/lib/crc32.o
+HOSTLDLIBS_mkfwumdata += -luuid
+hostprogs-always-$(CONFIG_TOOLS_MKFWUMDATA) += mkfwumdata
diff --git a/tools/mkfwumdata.c b/tools/fwumdata_src/mkfwumdata.c
similarity index 100%
rename from tools/mkfwumdata.c
rename to tools/fwumdata_src/mkfwumdata.c

--
2.43.0