blob: 289b3e77ddd0b71a5fbaf725982bde858025577d [file] [log] [blame]
Jens Wiklanderc2888862014-08-04 15:39:58 +02001#
Jeffrey Kardatzke7e6b09a2022-10-03 15:50:21 -07002# Copyright (c) 2013-2023, ARM Limited and Contributors. All rights reserved.
Jens Wiklanderc2888862014-08-04 15:39:58 +02003#
dp-armfa3cf0b2017-05-03 09:38:09 +01004# SPDX-License-Identifier: BSD-3-Clause
Jens Wiklanderc2888862014-08-04 15:39:58 +02005#
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
Sumit Garg594b3572019-08-05 14:34:48 +053016
17# required so that optee code can control access to the timer registers
18NS_TIMER_SWITCH := 1
Jeffrey Kardatzke7e6b09a2022-10-03 15:50:21 -070019
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))
Jeffrey Kardatzke45521892023-02-09 10:45:35 -080034include lib/libfdt/libfdt.mk
Jeffrey Kardatzke7e6b09a2022-10-03 15:50:21 -070035endif
Yi Chou097051f2023-04-11 15:57:08 +080036
37CROS_WIDEVINE_SMC := 0
38ifeq ($(CROS_WIDEVINE_SMC),1)
39ifeq ($(OPTEE_ALLOW_SMC_LOAD),0)
40$(error When CROS_WIDEVINE_SMC=1, OPTEE_ALLOW_SMC_LOAD must also be 1)
41endif
42$(eval $(call add_define,CROS_WIDEVINE_SMC))
43endif