On 3/27/23 23:16, jassisinghb...@gmail.com wrote:
From: Masami Hiramatsu <masami.hirama...@linaro.org>

Add 'mkfwumdata' tool to generate FWU metadata image for the meta-data
partition to be used in A/B Update imeplementation.

Signed-off-by: Masami Hiramatsu <masami.hirama...@linaro.org>
Signed-off-by: Sughosh Ganu <sughosh.g...@linaro.org>
Signed-off-by: Jassi Brar <jaswinder.si...@linaro.org>
---
  tools/Kconfig      |   9 ++
  tools/Makefile     |   4 +
  tools/mkfwumdata.c | 334 +++++++++++++++++++++++++++++++++++++++++++++
  3 files changed, 347 insertions(+)
  create mode 100644 tools/mkfwumdata.c

diff --git a/tools/Kconfig b/tools/Kconfig
index 539708f277..6e23f44d55 100644
--- a/tools/Kconfig
+++ b/tools/Kconfig
@@ -157,4 +157,13 @@ 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.
+
  endmenu
diff --git a/tools/Makefile b/tools/Makefile
index e13effbb66..80eee71505 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -247,6 +247,10 @@ HOSTLDLIBS_mkeficapsule += \
        $(shell pkg-config --libs uuid 2> /dev/null || echo "-luuid")
  hostprogs-$(CONFIG_TOOLS_MKEFICAPSULE) += mkeficapsule
+mkfwumdata-objs := mkfwumdata.o lib/crc32.o
+HOSTLDLIBS_mkfwumdata += -luuid
+hostprogs-$(CONFIG_TOOLS_MKFWUMDATA) += mkfwumdata
+
  # 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
  # exceptions for files that aren't complaint.
diff --git a/tools/mkfwumdata.c b/tools/mkfwumdata.c
new file mode 100644
index 0000000000..43dabf3b72
--- /dev/null
+++ b/tools/mkfwumdata.c
@@ -0,0 +1,334 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+#include <errno.h>
+#include <getopt.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <u-boot/crc.h>
+#include <unistd.h>
+#include <uuid/uuid.h>
+
+/* This will dynamically allocate the fwu_mdata */
+#define CONFIG_FWU_NUM_BANKS           0
+#define CONFIG_FWU_NUM_IMAGES_PER_BANK 0

These two are completely unused.

Thanks,
Michal

Reply via email to