1# 2# Copyright (c) 2013-2023, ARM Limited and Contributors. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7OPTEED_DIR := services/spd/opteed 8SPD_INCLUDES := 9 10SPD_SOURCES := services/spd/opteed/opteed_common.c \ 11 services/spd/opteed/opteed_helpers.S \ 12 services/spd/opteed/opteed_main.c \ 13 services/spd/opteed/opteed_pm.c 14 15NEED_BL32 := yes 16 17# required so that optee code can control access to the timer registers 18NS_TIMER_SWITCH := 1 19 20# WARNING: This enables loading of OP-TEE via an SMC, which can be potentially 21# insecure. This removes the boundary between the startup of the secure and 22# non-secure worlds until the point where this SMC is invoked. Only use this 23# setting if you can ensure that the non-secure OS can remain trusted up until 24# the point where this SMC is invoked. 25OPTEE_ALLOW_SMC_LOAD := 0 26ifeq ($(OPTEE_ALLOW_SMC_LOAD),1) 27ifeq ($(PLAT_XLAT_TABLES_DYNAMIC),0) 28$(error When OPTEE_ALLOW_SMC_LOAD=1, PLAT_XLAT_TABLES_DYNAMIC must also be 1) 29endif 30$(warning "OPTEE_ALLOW_SMC_LOAD is enabled which may result in an insecure \ 31 platform") 32$(eval $(call add_define,PLAT_XLAT_TABLES_DYNAMIC)) 33$(eval $(call add_define,OPTEE_ALLOW_SMC_LOAD)) 34include lib/libfdt/libfdt.mk 35endif 36