From 396b339dc20b97ddd75146e03467a255e28f31b9 Mon Sep 17 00:00:00 2001
From: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Date: Fri, 25 Jun 2021 23:28:59 +0100
Subject: [PATCH] feat(fwu): initialize FWU driver in BL2

Initialized FWU driver module in BL2 component under
build flag PSA_FWU_SUPPORT.

Change-Id: I08b191599835925c355981d695667828561b9a21
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
---
 Makefile                 | 6 ++++++
 bl2/bl2_main.c           | 7 ++++++-
 make_helpers/defaults.mk | 3 +++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index edc0d49fb..b4bebf17f 100644
--- a/Makefile
+++ b/Makefile
@@ -746,6 +746,10 @@ ifeq ($(MEASURED_BOOT),1)
     endif
 endif
 
+ifeq ($(PSA_FWU_SUPPORT),1)
+    $(info PSA_FWU_SUPPORT is an experimental feature)
+endif
+
 ifeq (${ARM_XLAT_TABLES_LIB_V1}, 1)
     ifeq (${ALLOW_RO_XLAT_TABLES}, 1)
         $(error "ALLOW_RO_XLAT_TABLES requires translation tables library v2")
@@ -959,6 +963,7 @@ $(eval $(call assert_booleans,\
         USE_SP804_TIMER \
         ENABLE_FEAT_RNG \
         ENABLE_FEAT_SB \
+        PSA_FWU_SUPPORT \
 )))
 
 $(eval $(call assert_numerics,\
@@ -1058,6 +1063,7 @@ $(eval $(call add_defines,\
         ENABLE_FEAT_SB \
         NR_OF_FW_BANKS \
         NR_OF_IMAGES_IN_FW_BANK \
+        PSA_FWU_SUPPORT \
 )))
 
 ifeq (${SANITIZE_UB},trap)
diff --git a/bl2/bl2_main.c b/bl2/bl2_main.c
index 203e1d4b1..d2de1350d 100644
--- a/bl2/bl2_main.c
+++ b/bl2/bl2_main.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2020, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2021, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -14,6 +14,7 @@
 #include <common/debug.h>
 #include <drivers/auth/auth_mod.h>
 #include <drivers/console.h>
+#include <drivers/fwu/fwu.h>
 #if MEASURED_BOOT
 #include <drivers/measured_boot/measured_boot.h>
 #endif
@@ -88,6 +89,10 @@ void bl2_main(void)
 	/* Perform remaining generic architectural setup in S-EL1 */
 	bl2_arch_setup();
 
+#if PSA_FWU_SUPPORT
+	fwu_init();
+#endif /* PSA_FWU_SUPPORT */
+
 #if TRUSTED_BOARD_BOOT
 	/* Initialize authentication module */
 	auth_mod_init();
diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk
index 53d9605df..72f84b52e 100644
--- a/make_helpers/defaults.mk
+++ b/make_helpers/defaults.mk
@@ -352,3 +352,6 @@ NR_OF_FW_BANKS			:= 2
 # Build option to define number of images in firmware bank, used in firmware
 # update metadata structure.
 NR_OF_IMAGES_IN_FW_BANK		:= 1
+
+# Disable Firmware update support by default
+PSA_FWU_SUPPORT			:= 0
-- 
GitLab