mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
Build: merge build macros between FIP_ and FWU_FIP_
The build system supports generating two FIP images, fip and fwu_fip. Accordingly, we have similar build macros. FIP_ADD_PAYLOAD <--> FWU_FIP_ADD_PAYLOAD CERT_ADD_CMD_OPT <--> FWU_CERT_ADD_CMD_OPT FIP_ADD_IMG <--> FWU_FIP_ADD_IMG The duplicated code increases the maintenance burden. Also, the build rule of BL2U looks clumsy - we want to call MAKE_BL to compile it from source files, but we want to put it in fwu_fip. We can not do it in a single macro call since the current MAKE_BL does not support fwu_fip. To refactor those in a clean way is to support one more argument to specify the FIP prefix. If it is empty, the images are targeted to fip, whereas if the argument is "FWU_", targeted to fwu_fip. The build macros prefixed with FWU_ go away. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
34ec84944c
commit
1dc0714f10
5 changed files with 26 additions and 58 deletions
5
Makefile
5
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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue