summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Martin <olivier.martin@arm.com>2015-05-05 14:56:51 +0000
committeroliviermartin <oliviermartin@Edk2>2015-05-05 14:56:51 +0000
commitb330087bab35a402d63a1c43dcf1f6b3de24b2df (patch)
tree05172b53e18360e81e38b73a84ec0a4301a16446
parentbe85bf89b35a6335fd495f869f4bbcc6de233ac4 (diff)
downloadedk2-platforms-b330087bab35a402d63a1c43dcf1f6b3de24b2df.tar.xz
ArmPlatformPkg/Scripts/Makefile: Added support to automatically update the FIP
Some ARM development platforms use ARM Trusted Firmware to boot. ARM Trusted Firmware encapsulates UEFI into the FIP (Firmware Image Package) binary. This change allows to update the FIP binary after building UEFI. Example to build UEFI for FVP Base model: $ make -f ArmPlatformPkg/Scripts/Makefile \ EDK2_DSC=ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc \ EDK2_ARCH=AARCH64 EDK2_TOOLCHAIN=GCC49 \ FIP_BIN=~/arm-trusted-firmware/build/fvp/release/fip.bin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> Reviewed-by: Ronald Cron <Ronald.Cron@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17296 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--ArmPlatformPkg/Scripts/Makefile26
1 files changed, 25 insertions, 1 deletions
diff --git a/ArmPlatformPkg/Scripts/Makefile b/ArmPlatformPkg/Scripts/Makefile
index f933755b51..8f23f7bd36 100644
--- a/ArmPlatformPkg/Scripts/Makefile
+++ b/ArmPlatformPkg/Scripts/Makefile
@@ -1,5 +1,5 @@
#/* @file
-# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
+# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -23,6 +23,11 @@ EDK2_BUILD ?= DEBUG
ifeq ($(EDK2_DSC),"")
$(error The Makfile macro 'EDK2_DSC' must be defined with an EDK2 DSC file.)
endif
+ifeq ("$(EDK2_DSC)","ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc")
+ BUILD_FIP=1
+ BUILD_PATH=$(WORKSPACE)/Build/ArmVExpress-FVP-AArch64
+ UEFI_BIN=FVP_AARCH64_EFI.fd
+endif
ifeq ("$(OS)","Windows_NT")
export WORKSPACE?=$(PWD)
@@ -39,12 +44,31 @@ RM ?= rm -f
EDK2_CONF = Conf/BuildEnv.sh Conf/build_rule.txt Conf/target.txt Conf/tools_def.txt
+#
+# FIP Support
+#
+ifeq ($(BUILD_FIP),"1")
+ ifeq ($(FIP_BIN),"")
+ $(info Define location of the FIP to automatically update the package after building UEFI.)
+ endif
+endif
+
all: $(EDK2_CONF)
ifeq ("$(OS)","Windows_NT")
build -a $(EDK2_ARCH) -p $(EDK2_DSC) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS)
else
. ./edksetup.sh; build -a $(EDK2_ARCH) -p $(EDK2_DSC) -t $(EDK2_TOOLCHAIN) -b $(EDK2_BUILD) $(EDK2_MACROS)
endif
+ifeq ("$(BUILD_FIP)","1")
+ifneq ($(FIP_BIN),"")
+ $(SILENT)which fip_create ; \
+ if [ $$? -ne 0 ]; then \
+ $(ECHO) "Warning: 'fip_create' tool is not in the PATH. The UEFI binary will not be added in the Firmware Image Package (FIP)."; \
+ else \
+ fip_create --bl33 $(BUILD_PATH)/$(EDK2_BUILD)_$(EDK2_TOOLCHAIN)/FV/$(UEFI_BIN) --dump $(FIP_BIN); \
+ fi
+endif
+endif
$(EDK2_CONF):
ifeq ("$(OS)","Windows_NT")