diff --git a/Makefile b/Makefile index c066845f0..0fe9b083a 100644 --- a/Makefile +++ b/Makefile @@ -629,9 +629,8 @@ $(eval $(call FIP_ADD_IMG,BL33,--nt-fw)) endif ifeq (${NEED_BL2U},yes) -BL2U_PATH := $(if ${BL2U},${BL2U},$(call IMG_BIN,2u)) -$(if ${BL2U}, ,$(eval $(call MAKE_BL,2u))) -$(eval $(call FWU_FIP_ADD_PAYLOAD,${BL2U_PATH},--ap-fwu-cfg)) +$(if ${BL2U}, $(eval $(call FIP_ADD_IMG,BL2U,--ap-fwu-cfg,FWU_)),\ + $(eval $(call MAKE_BL,2u,ap-fwu-cfg,FWU_))) endif # Expand build macros for the different images diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk index 97012726e..3ca47ed13 100644 --- a/make_helpers/build_macros.mk +++ b/make_helpers/build_macros.mk @@ -103,18 +103,20 @@ endef # $(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 @@ endef # 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 @@ BUILD_MESSAGE_TIMESTAMP ?= __TIME__", "__DATE__ # 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 @@ bl$(1): $(BIN) $(DUMP) 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 cda8d7266..00210177a 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 FIP_ADD_PAYLOAD,${TRUSTED_KEY_CERT},--trusted-key-cert)) $(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 @@ $(eval $(call FWU_CERT_ADD_CMD_OPT,${FWU_CERT},--fwu-cert)) $(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 @@ ifneq (${BL33},) 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 diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk index e6ce18a72..09c87b53c 100644 --- a/plat/arm/common/arm_common.mk +++ b/plat/arm/common/arm_common.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 # @@ -211,7 +211,7 @@ ifneq (${TRUSTED_BOARD_BOOT},0) BL2_SOURCES += ${AUTH_SOURCES} \ plat/common/tbbr/plat_tbbr.c - $(eval $(call FWU_FIP_ADD_IMG,NS_BL2U,--fwu)) + $(eval $(call FIP_ADD_IMG,NS_BL2U,--fwu,FWU_)) # We expect to locate the *.mk files under the directories specified below ifeq (${ARM_CRYPTOCELL_INTEG},0) diff --git a/plat/arm/css/common/css_common.mk b/plat/arm/css/common/css_common.mk index 63e305916..4232a4411 100644 --- a/plat/arm/css/common/css_common.mk +++ b/plat/arm/css/common/css_common.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 # @@ -49,7 +49,7 @@ $(eval $(call add_define,CSS_LOAD_SCP_IMAGES)) ifeq (${CSS_LOAD_SCP_IMAGES},1) NEED_SCP_BL2 := yes ifneq (${TRUSTED_BOARD_BOOT},0) - $(eval $(call FWU_FIP_ADD_IMG,SCP_BL2U,--scp-fwu-cfg)) + $(eval $(call FIP_ADD_IMG,SCP_BL2U,--scp-fwu-cfg,FWU_)) endif ifeq (${CSS_USE_SCMI_SDS_DRIVER},1)