From d308ed37bcc1e8d0bf35752e48a96c144b578dab Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Fri, 20 Jul 2018 09:08:42 +0200 Subject: arch/arm64: Add Kconfig to include BL31 as blob Add Kconfig options to not build the Arm Trusted Firmware, but use a precompiled binary instead. To be used on platforms that do not have upstream Arm Trusted Firmware support and useful for development purposes. It is recommended to use upstream Arm Trusted Firmware where possible. Change-Id: I17954247029df627a3f4db8b73993bd549e55967 Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/27559 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner Reviewed-by: Philipp Deppenwiese --- src/arch/arm64/Kconfig | 8 ++++++++ src/arch/arm64/Makefile.inc | 9 +++++++++ 2 files changed, 17 insertions(+) (limited to 'src/arch') 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 -- cgit v1.2.3