| # |
| # Copyright (c) 2013-2023, ARM Limited and Contributors. All rights reserved. |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| # |
| |
| OPTEED_DIR := services/spd/opteed |
| SPD_INCLUDES := |
| |
| SPD_SOURCES := services/spd/opteed/opteed_common.c \ |
| services/spd/opteed/opteed_helpers.S \ |
| services/spd/opteed/opteed_main.c \ |
| services/spd/opteed/opteed_pm.c |
| |
| NEED_BL32 := yes |
| |
| # required so that optee code can control access to the timer registers |
| NS_TIMER_SWITCH := 1 |
| |
| # WARNING: This enables loading of OP-TEE via an SMC, which can be potentially |
| # insecure. This removes the boundary between the startup of the secure and |
| # non-secure worlds until the point where this SMC is invoked. Only use this |
| # setting if you can ensure that the non-secure OS can remain trusted up until |
| # the point where this SMC is invoked. |
| OPTEE_ALLOW_SMC_LOAD := 0 |
| ifeq ($(OPTEE_ALLOW_SMC_LOAD),1) |
| ifeq ($(PLAT_XLAT_TABLES_DYNAMIC),0) |
| $(error When OPTEE_ALLOW_SMC_LOAD=1, PLAT_XLAT_TABLES_DYNAMIC must also be 1) |
| endif |
| $(warning "OPTEE_ALLOW_SMC_LOAD is enabled which may result in an insecure \ |
| platform") |
| $(eval $(call add_define,PLAT_XLAT_TABLES_DYNAMIC)) |
| $(eval $(call add_define,OPTEE_ALLOW_SMC_LOAD)) |
| endif |