14f6ad66aSAchin Gupta# 2b62673c6SBoyan Karatotev# Copyright (c) 2013-2025, Arm Limited and Contributors. All rights reserved. 34f6ad66aSAchin Gupta# 482cb2c1aSdp-arm# SPDX-License-Identifier: BSD-3-Clause 54f6ad66aSAchin Gupta# 64f6ad66aSAchin Gupta 79d93fc2fSAntonio Nino DiazBL2_SOURCES += bl2/bl2_image_load_v2.c \ 89d93fc2fSAntonio Nino Diaz bl2/bl2_main.c \ 9d48c12e9SYatharth Kochar bl2/${ARCH}/bl2_arch_setup.c \ 1075311203Sdp-arm lib/locks/exclusive/${ARCH}/spinlock.S \ 1176d26733SRoberto Vargas plat/common/${ARCH}/platform_up_stack.S \ 12180c4bc2SRoberto Vargas ${MBEDTLS_SOURCES} 13d48c12e9SYatharth Kochar 14d48c12e9SYatharth Kocharifeq (${ARCH},aarch64) 15d48c12e9SYatharth KocharBL2_SOURCES += common/aarch64/early_exceptions.S 16d48c12e9SYatharth Kocharendif 174f6ad66aSAchin Gupta 186c09af9fSZelalem Awekeifeq (${ENABLE_RME},1) 19f19dc624Sjohpow01include lib/gpt_rme/gpt_rme.mk 201839012dSZelalem Aweke 2104cf04c7SBoyan KaratotevBL2_SOURCES += ${GPT_LIB_SRCS} 2204cf04c7SBoyan Karatotevendif 236c09af9fSZelalem Aweke 2404cf04c7SBoyan Karatotevifeq (${BL2_RUNS_AT_EL3},1) 2504cf04c7SBoyan KaratotevBL2_SOURCES += bl2/${ARCH}/bl2_el3_entrypoint.S \ 2604cf04c7SBoyan Karatotev bl2/${ARCH}/bl2_el3_exceptions.S \ 2704cf04c7SBoyan Karatotev bl2/${ARCH}/bl2_run_next_image.S 2804cf04c7SBoyan Karatotev 2904cf04c7SBoyan KaratotevBL2_DEFAULT_LINKER_SCRIPT_SOURCE := bl2/bl2_el3.ld.S 3004cf04c7SBoyan Karatotevelse 316c09af9fSZelalem Aweke# Normal operation, no RME, no BL2 at EL3 32b1d27b48SRoberto VargasBL2_SOURCES += bl2/${ARCH}/bl2_entrypoint.S 3382274936SChris KayBL2_DEFAULT_LINKER_SCRIPT_SOURCE := bl2/bl2.ld.S 3404cf04c7SBoyan Karatotevendif 35b1d27b48SRoberto Vargas 3604cf04c7SBoyan Karatotevifeq (${RESET_TO_BL2},1) 376c09af9fSZelalem Aweke# BL2 at EL3, no RME 3804cf04c7SBoyan KaratotevBL2_SOURCES += lib/cpus/${ARCH}/cpu_helpers.S 39b1d27b48SRoberto Vargasendif 40ed8f06ddSthagon01-arm 41ed8f06ddSthagon01-armifeq (${ENABLE_PMF},1) 42ed8f06ddSthagon01-armBL2_SOURCES += lib/pmf/pmf_main.c 43ed8f06ddSthagon01-armendif 44*6e2fe623SLauren Wehrmeister 45*6e2fe623SLauren Wehrmeister# CRYPTO_SUPPORT 46*6e2fe623SLauren WehrmeisterNEED_AUTH := $(if $(filter 1,$(TRUSTED_BOARD_BOOT)),1,) 47*6e2fe623SLauren WehrmeisterNEED_HASH := $(if $(filter 1,$(MEASURED_BOOT) $(DRTM_SUPPORT)),1,) 48*6e2fe623SLauren Wehrmeister$(eval $(call set_crypto_support,NEED_AUTH,NEED_HASH)) 49*6e2fe623SLauren Wehrmeister 50*6e2fe623SLauren Wehrmeister# BL2_CPPFLAGS 51*6e2fe623SLauren Wehrmeister$(eval BL2_CPPFLAGS += $(call make_defines, \ 52*6e2fe623SLauren Wehrmeister $(sort \ 53*6e2fe623SLauren Wehrmeister CRYPTO_SUPPORT \ 54*6e2fe623SLauren Wehrmeister))) 55*6e2fe623SLauren Wehrmeister 56*6e2fe623SLauren Wehrmeister# Numeric_Flags 57*6e2fe623SLauren Wehrmeister$(eval $(call assert_numerics,\ 58*6e2fe623SLauren Wehrmeister $(sort \ 59*6e2fe623SLauren Wehrmeister CRYPTO_SUPPORT \ 60*6e2fe623SLauren Wehrmeister))) 61