Skip to content

Commit 0048f71

Browse files
raymo200915jforissier
authored andcommitted
qemu_v8: add build for enabling Firmware Handoff
Add build option and conf file for enabling Firmware Handoff in TF-A, OP-TEE and U-Boot. Currently the feature is only supported when SPMC is disabled, since SPMC manifest is not yet defined as a Transfer Entry to be handed off via Transfer List. Signed-off-by: Raymond Mao <raymond.mao@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
1 parent a929f00 commit 0048f71

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

kconfigs/u-boot_tl.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
2+
CONFIG_BLOBLIST_SIZE=0

qemu_v8.mk

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ endif
3838
# Enable fTPM
3939
MEASURED_BOOT_FTPM ?= y
4040

41+
# Enable Arm Firmware Handoff
42+
ARM_FIRMWARE_HANDOFF ?= n
43+
4144
# Option to build with GICV3 enabled
4245
GICV3 ?= y
4346

@@ -63,6 +66,12 @@ ifneq ($(filter-out n 1 2 3,$(SPMC_AT_EL)),)
6366
$(error Unsupported SPMC_AT_EL value $(SPMC_AT_EL))
6467
endif
6568

69+
ifeq ($(ARM_FIRMWARE_HANDOFF),y)
70+
ifneq ($(SPMC_AT_EL),n)
71+
$(error ARM_FIRMWARE_HANDOFF not supported with SPMC_AT_EL value $(SPMC_AT_EL))
72+
endif
73+
endif
74+
6675
# Option to configure Pointer Authentication for TA's
6776
PAUTH ?= n
6877

@@ -190,6 +199,10 @@ TF_A_FLAGS ?= \
190199
DEBUG=$(TF_A_DEBUG) \
191200
LOG_LEVEL=$(TF_A_LOGLVL)
192201

202+
ifeq ($(ARM_FIRMWARE_HANDOFF),y)
203+
TF_A_FLAGS += TRANSFER_LIST=1
204+
endif
205+
193206
TF_A_FLAGS_BL32_OPTEE = BL32=$(OPTEE_OS_HEADER_V2_BIN)
194207
TF_A_FLAGS_BL32_OPTEE += BL32_EXTRA1=$(OPTEE_OS_PAGER_V2_BIN)
195208
TF_A_FLAGS_BL32_OPTEE += BL32_EXTRA2=$(OPTEE_OS_PAGEABLE_V2_BIN)
@@ -314,6 +327,10 @@ UBOOT_DEFCONFIG_FILES := $(UBOOT_PATH)/configs/qemu_arm64_defconfig \
314327
$(ROOT)/build/kconfigs/u-boot_qemu_v8.conf
315328
endif
316329

330+
ifeq ($(ARM_FIRMWARE_HANDOFF),y)
331+
UBOOT_DEFCONFIG_FILES += $(ROOT)/build/kconfigs/u-boot_tl.conf
332+
endif
333+
317334
UBOOT_COMMON_FLAGS ?= CROSS_COMPILE=$(CROSS_COMPILE_NS_KERNEL)
318335

319336
$(UBOOT_PATH)/.config: $(UBOOT_DEFCONFIG_FILES)
@@ -423,6 +440,10 @@ endif
423440

424441
OPTEE_OS_COMMON_FLAGS += $(OPTEE_OS_COMMON_FLAGS_SPMC_AT_EL_$(SPMC_AT_EL))
425442

443+
ifeq ($(ARM_FIRMWARE_HANDOFF),y)
444+
OPTEE_OS_COMMON_FLAGS += CFG_TRANSFER_LIST=y
445+
endif
446+
426447
optee-os: optee-os-common
427448

428449
optee-os-clean: optee-os-clean-common

0 commit comments

Comments
 (0)