diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk
index 9701272..3ca47ed 100644
--- a/make_helpers/build_macros.mk
+++ b/make_helpers/build_macros.mk
@@ -103,18 +103,20 @@
 #   $(1) = payload filename (i.e. bl31.bin)
 #   $(2) = command line option for the specified payload (i.e. --soc-fw)
 #   $(3) = fip target dependency (optional) (i.e. bl31)
+#   $(4) = FIP prefix (optional) (if FWU_, target is fwu_fip instead of fip)
 define FIP_ADD_PAYLOAD
-    $(eval FIP_ARGS += $(2) $(1))
-    $(eval $(if $(3),FIP_DEPS += $(3)))
+    $(eval $(4)FIP_ARGS += $(2) $(1))
+    $(eval $(if $(3),$(4)FIP_DEPS += $(3)))
 endef
 
 # CERT_ADD_CMD_OPT adds a new command line option to the cert_create invocation
 #   $(1) = parameter filename
 #   $(2) = cert_create command line option for the specified parameter
 #   $(3) = input parameter (false if empty)
+#   $(4) = FIP prefix (optional) (if FWU_, target is fwu_fip instead of fip)
 define CERT_ADD_CMD_OPT
-    $(eval $(if $(3),CRT_DEPS += $(1)))
-    $(eval CRT_ARGS += $(2) $(1))
+    $(eval $(if $(3),$(4)CRT_DEPS += $(1)))
+    $(eval $(4)CRT_ARGS += $(2) $(1))
 endef
 
 # FIP_ADD_IMG allows the platform to specify an image to be packed in the FIP
@@ -122,47 +124,13 @@
 # the build if the file does not exist.
 #   $(1) = build option to specify the image filename (SCP_BL2, BL33, etc)
 #   $(2) = command line option for fiptool (--scp-fw, --nt-fw, etc)
+#   $(3) = FIP prefix (optional) (if FWU_, target is fwu_fip instead of fip)
 # Example:
 #   $(eval $(call FIP_ADD_IMG,BL33,--nt-fw))
 define FIP_ADD_IMG
-    CRT_DEPS += check_$(1)
-    FIP_DEPS += check_$(1)
-    $(call FIP_ADD_PAYLOAD,$(value $(1)),$(2))
-
-.PHONY: check_$(1)
-check_$(1):
-	$$(if $(value $(1)),,$$(error "Platform '${PLAT}' requires $(1). Please set $(1) to point to the right file"))
-	$$(if $(wildcard $(value $(1))),,$$(error '$(1)=$(value $(1))' was specified, but '$(value $(1))' does not exist))
-endef
-
-# FWU_FIP_ADD_PAYLOAD appends the command line arguments required by fiptool
-# to package a new FWU payload. Optionally, it  adds the dependency on this payload
-#   $(1) = payload filename (e.g. ns_bl2u.bin)
-#   $(2) = command line option for the specified payload (e.g. --fwu)
-#   $(3) = fip target dependency (optional) (e.g. ns_bl2u)
-define FWU_FIP_ADD_PAYLOAD
-    $(eval $(if $(3),FWU_FIP_DEPS += $(3)))
-    $(eval FWU_FIP_ARGS += $(2) $(1))
-endef
-
-# FWU_CERT_ADD_CMD_OPT adds a new command line option to the cert_create invocation
-#   $(1) = parameter filename
-#   $(2) = cert_create command line option for the specified parameter
-#   $(3) = input parameter (false if empty)
-define FWU_CERT_ADD_CMD_OPT
-    $(eval $(if $(3),FWU_CRT_DEPS += $(1)))
-    $(eval FWU_CRT_ARGS += $(2) $(1))
-endef
-
-# FWU_FIP_ADD_IMG allows the platform to pack a binary image in the FWU FIP
-#   $(1) build option to specify the image filename (BL2U, NS_BL2U, etc)
-#   $(2) command line option for fiptool (--ap-fwu-cfg, --fwu, etc)
-# Example:
-#   $(eval $(call FWU_FIP_ADD_IMG,BL2U,--ap-fwu-cfg))
-define FWU_FIP_ADD_IMG
-    FWU_CRT_DEPS += check_$(1)
-    FWU_FIP_DEPS += check_$(1)
-    $(call FWU_FIP_ADD_PAYLOAD,$(value $(1)),$(2))
+    $(eval $(3)CRT_DEPS += check_$(1))
+    $(eval $(3)FIP_DEPS += check_$(1))
+    $(call FIP_ADD_PAYLOAD,$(value $(1)),$(2),,$(3))
 
 .PHONY: check_$(1)
 check_$(1):
@@ -265,6 +233,7 @@
 # Arguments:
 #   $(1) = BL stage (2, 2u, 30, 31, 32, 33)
 #   $(2) = FIP command line option (if empty, image will not be included in the FIP)
+#   $(3) = FIP prefix (optional) (if FWU_, target is fwu_fip instead of fip)
 define MAKE_BL
         $(eval BUILD_DIR  := ${BUILD_PLAT}/bl$(1))
         $(eval BL_SOURCES := $(BL$(call uppercase,$(1))_SOURCES))
@@ -326,7 +295,7 @@
 
 all: bl$(1)
 
-$(if $(2),$(call FIP_ADD_PAYLOAD,$(BIN),--$(2),bl$(1)))
+$(if $(2),$(call FIP_ADD_PAYLOAD,$(BIN),--$(2),bl$(1),$(3)))
 
 endef
 
diff --git a/make_helpers/tbbr/tbbr_tools.mk b/make_helpers/tbbr/tbbr_tools.mk
index cda8d72..0021017 100644
--- a/make_helpers/tbbr/tbbr_tools.mk
+++ b/make_helpers/tbbr/tbbr_tools.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
+# Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -47,8 +47,8 @@
 $(eval $(call CERT_ADD_CMD_OPT,${TRUSTED_KEY_CERT},--trusted-key-cert))
 
 # Add fwu certificate to the fiptool and cert_create command line options
-$(eval $(call FWU_FIP_ADD_PAYLOAD,${FWU_CERT},--fwu-cert))
-$(eval $(call FWU_CERT_ADD_CMD_OPT,${FWU_CERT},--fwu-cert))
+$(eval $(call FIP_ADD_PAYLOAD,${FWU_CERT},--fwu-cert,,FWU_))
+$(eval $(call CERT_ADD_CMD_OPT,${FWU_CERT},--fwu-cert,,FWU_))
 
 # Add the keys to the cert_create command line options (private keys are NOT
 # packed in the FIP). Developers can use their own keys by specifying the proper
@@ -56,7 +56,7 @@
 $(if ${KEY_ALG},$(eval $(call CERT_ADD_CMD_OPT,${KEY_ALG},--key-alg)))
 $(if ${HASH_ALG},$(eval $(call CERT_ADD_CMD_OPT,${HASH_ALG},--hash-alg)))
 $(if ${ROT_KEY},$(eval $(call CERT_ADD_CMD_OPT,${ROT_KEY},--rot-key)))
-$(if ${ROT_KEY},$(eval $(call FWU_CERT_ADD_CMD_OPT,${ROT_KEY},--rot-key)))
+$(if ${ROT_KEY},$(eval $(call CERT_ADD_CMD_OPT,${ROT_KEY},--rot-key,,FWU_)))
 $(if ${TRUSTED_WORLD_KEY},$(eval $(call CERT_ADD_CMD_OPT,${TRUSTED_WORLD_KEY},--trusted-world-key)))
 $(if ${NON_TRUSTED_WORLD_KEY},$(eval $(call CERT_ADD_CMD_OPT,${NON_TRUSTED_WORLD_KEY},--non-trusted-world-key)))
 
@@ -119,15 +119,15 @@
 endif
 
 # Add the BL2U image
-$(if ${BL2U},$(eval $(call FWU_CERT_ADD_CMD_OPT,${BL2U},--ap-fwu-cfg,true)),\
-     $(eval $(call FWU_CERT_ADD_CMD_OPT,$(call IMG_BIN,2u),--ap-fwu-cfg,true)))
+$(if ${BL2U},$(eval $(call CERT_ADD_CMD_OPT,${BL2U},--ap-fwu-cfg,true,FWU_)),\
+     $(eval $(call CERT_ADD_CMD_OPT,$(call IMG_BIN,2u),--ap-fwu-cfg,true,FWU_)))
 
 # Add the SCP_BL2U image
 ifneq (${SCP_BL2U},)
-    $(eval $(call FWU_CERT_ADD_CMD_OPT,${SCP_BL2U},--scp-fwu-cfg,true))
+    $(eval $(call CERT_ADD_CMD_OPT,${SCP_BL2U},--scp-fwu-cfg,true,FWU_))
 endif
 
 # Add the NS_BL2U image
 ifneq (${NS_BL2U},)
-    $(eval $(call FWU_CERT_ADD_CMD_OPT,${NS_BL2U},--fwu,true))
+    $(eval $(call CERT_ADD_CMD_OPT,${NS_BL2U},--fwu,true,FWU_))
 endif
