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 <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/27559
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
This commit is contained in:
Patrick Rudolph 2018-07-20 09:08:42 +02:00 committed by Philipp Deppenwiese
parent d1b482c716
commit d308ed37bc
2 changed files with 17 additions and 0 deletions

View File

@ -31,6 +31,14 @@ config ARM64_USE_ARM_TRUSTED_FIRMWARE
default n default n
depends on ARCH_RAMSTAGE_ARM64 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 config ARM64_USE_SECURE_OS
bool bool
default n default n

View File

@ -156,6 +156,8 @@ $(objcbfs)/ramstage.debug: $$(ramstage-objs)
ifeq ($(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE),y) ifeq ($(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE),y)
ifeq ($(CONFIG_ARM64_BL31_EXTERNAL_FILE),"")
BL31_SOURCE := $(top)/3rdparty/arm-trusted-firmware BL31_SOURCE := $(top)/3rdparty/arm-trusted-firmware
BL31_BUILD := $(abspath $(obj)/3rdparty/arm-trusted-firmware) BL31_BUILD := $(abspath $(obj)/3rdparty/arm-trusted-firmware)
BL31_TARGET := $(BL31_BUILD)/bl31/bl31.elf BL31_TARGET := $(BL31_BUILD)/bl31/bl31.elf
@ -205,6 +207,13 @@ $(BL31): $(obj)/build.h
.PHONY: $(BL31) .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 := $(CONFIG_CBFS_PREFIX)/bl31
$(BL31_CBFS)-file := $(BL31) $(BL31_CBFS)-file := $(BL31)
$(BL31_CBFS)-type := payload $(BL31_CBFS)-type := payload