xref: /aosp_15_r20/external/arm-trusted-firmware/bl32/sp_min/sp_min.mk (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park#
2*54fd6939SJiyong Park# Copyright (c) 2016-2021, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park#
4*54fd6939SJiyong Park# SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park#
6*54fd6939SJiyong Park
7*54fd6939SJiyong Parkifneq (${ARCH}, aarch32)
8*54fd6939SJiyong Park	$(error SP_MIN is only supported on AArch32 platforms)
9*54fd6939SJiyong Parkendif
10*54fd6939SJiyong Park
11*54fd6939SJiyong Parkinclude lib/extensions/amu/amu.mk
12*54fd6939SJiyong Parkinclude lib/psci/psci_lib.mk
13*54fd6939SJiyong Park
14*54fd6939SJiyong ParkINCLUDES		+=	-Iinclude/bl32/sp_min
15*54fd6939SJiyong Park
16*54fd6939SJiyong ParkBL32_SOURCES		+=	bl32/sp_min/sp_min_main.c		\
17*54fd6939SJiyong Park				bl32/sp_min/aarch32/entrypoint.S	\
18*54fd6939SJiyong Park				common/runtime_svc.c			\
19*54fd6939SJiyong Park				plat/common/aarch32/plat_sp_min_common.c\
20*54fd6939SJiyong Park				services/std_svc/std_svc_setup.c	\
21*54fd6939SJiyong Park				${PSCI_LIB_SOURCES}
22*54fd6939SJiyong Park
23*54fd6939SJiyong Parkifeq (${DISABLE_MTPMU},1)
24*54fd6939SJiyong ParkBL32_SOURCES		+=	lib/extensions/mtpmu/aarch32/mtpmu.S
25*54fd6939SJiyong Parkendif
26*54fd6939SJiyong Park
27*54fd6939SJiyong Parkifeq (${ENABLE_PMF}, 1)
28*54fd6939SJiyong ParkBL32_SOURCES		+=	lib/pmf/pmf_main.c
29*54fd6939SJiyong Parkendif
30*54fd6939SJiyong Park
31*54fd6939SJiyong Parkifeq (${ENABLE_AMU},1)
32*54fd6939SJiyong ParkBL32_SOURCES		+=	${AMU_SOURCES}
33*54fd6939SJiyong Parkendif
34*54fd6939SJiyong Park
35*54fd6939SJiyong Parkifeq (${WORKAROUND_CVE_2017_5715},1)
36*54fd6939SJiyong ParkBL32_SOURCES		+=	bl32/sp_min/wa_cve_2017_5715_bpiall.S	\
37*54fd6939SJiyong Park				bl32/sp_min/wa_cve_2017_5715_icache_inv.S
38*54fd6939SJiyong Parkendif
39*54fd6939SJiyong Park
40*54fd6939SJiyong Parkifeq (${TRNG_SUPPORT},1)
41*54fd6939SJiyong ParkBL32_SOURCES		+=	services/std_svc/trng/trng_main.c	\
42*54fd6939SJiyong Park				services/std_svc/trng/trng_entropy_pool.c
43*54fd6939SJiyong Parkendif
44*54fd6939SJiyong Park
45*54fd6939SJiyong Parkifeq (${ENABLE_SYS_REG_TRACE_FOR_NS},1)
46*54fd6939SJiyong ParkBL32_SOURCES		+=	lib/extensions/sys_reg_trace/aarch32/sys_reg_trace.c
47*54fd6939SJiyong Parkendif
48*54fd6939SJiyong Park
49*54fd6939SJiyong Parkifeq (${ENABLE_TRF_FOR_NS},1)
50*54fd6939SJiyong ParkBL32_SOURCES		+=	lib/extensions/trf/aarch32/trf.c
51*54fd6939SJiyong Parkendif
52*54fd6939SJiyong Park
53*54fd6939SJiyong ParkBL32_LINKERFILE	:=	bl32/sp_min/sp_min.ld.S
54*54fd6939SJiyong Park
55*54fd6939SJiyong Park# Include the platform-specific SP_MIN Makefile
56*54fd6939SJiyong Park# If no platform-specific SP_MIN Makefile exists, it means SP_MIN is not supported
57*54fd6939SJiyong Park# on this platform.
58*54fd6939SJiyong ParkSP_MIN_PLAT_MAKEFILE := $(wildcard ${PLAT_DIR}/sp_min/sp_min-${PLAT}.mk)
59*54fd6939SJiyong Parkifeq (,${SP_MIN_PLAT_MAKEFILE})
60*54fd6939SJiyong Park  $(error SP_MIN is not supported on platform ${PLAT})
61*54fd6939SJiyong Parkelse
62*54fd6939SJiyong Park  include ${SP_MIN_PLAT_MAKEFILE}
63*54fd6939SJiyong Parkendif
64*54fd6939SJiyong Park
65*54fd6939SJiyong ParkRESET_TO_SP_MIN	:= 0
66*54fd6939SJiyong Park$(eval $(call add_define,RESET_TO_SP_MIN))
67*54fd6939SJiyong Park$(eval $(call assert_boolean,RESET_TO_SP_MIN))
68*54fd6939SJiyong Park
69*54fd6939SJiyong Park# Flag to allow SP_MIN to handle FIQ interrupts in monitor mode. The platform
70*54fd6939SJiyong Park# port is free to override this value. It is default disabled.
71*54fd6939SJiyong ParkSP_MIN_WITH_SECURE_FIQ 	?= 0
72*54fd6939SJiyong Park$(eval $(call add_define,SP_MIN_WITH_SECURE_FIQ))
73*54fd6939SJiyong Park$(eval $(call assert_boolean,SP_MIN_WITH_SECURE_FIQ))
74