summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/arm64/Kconfig8
-rw-r--r--src/arch/arm64/Makefile.inc9
2 files changed, 17 insertions, 0 deletions
diff --git a/src/arch/arm64/Kconfig b/src/arch/arm64/Kconfig
index cae558b1c4..71c9f042f5 100644
--- a/src/arch/arm64/Kconfig
+++ b/src/arch/arm64/Kconfig
@@ -31,6 +31,14 @@ config ARM64_USE_ARM_TRUSTED_FIRMWARE
default n
depends on ARCH_RAMSTAGE_ARM64
+config ARM64_BL31_EXTERNAL_FILE
+ string "Path to external BL31.ELF (leave empty to build from source)"
+ depends on ARM64_USE_ARM_TRUSTED_FIRMWARE
+ help
+ The blob to use instead of building the Arm Trusted Firmware
+ from tree. It is discouraged as compatibility with out-of-tree
+ blobs may break anytime.
+
config ARM64_USE_SECURE_OS
bool
default n
diff --git a/src/arch/arm64/Makefile.inc b/src/arch/arm64/Makefile.inc
index 3c3cd20370..e2c44eb479 100644
--- a/src/arch/arm64/Makefile.inc
+++ b/src/arch/arm64/Makefile.inc
@@ -156,6 +156,8 @@ $(objcbfs)/ramstage.debug: $$(ramstage-objs)
ifeq ($(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE),y)
+ifeq ($(CONFIG_ARM64_BL31_EXTERNAL_FILE),"")
+
BL31_SOURCE := $(top)/3rdparty/arm-trusted-firmware
BL31_BUILD := $(abspath $(obj)/3rdparty/arm-trusted-firmware)
BL31_TARGET := $(BL31_BUILD)/bl31/bl31.elf
@@ -205,6 +207,13 @@ $(BL31): $(obj)/build.h
.PHONY: $(BL31)
+else
+
+BL31 := $(call strip_quotes,$(CONFIG_ARM64_BL31_EXTERNAL_FILE))
+
+endif # CONFIG_ARM64_BUILD_ARM_TRUSTED_FIRMWARE
+
+
BL31_CBFS := $(CONFIG_CBFS_PREFIX)/bl31
$(BL31_CBFS)-file := $(BL31)
$(BL31_CBFS)-type := payload