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