1*54fd6939SJiyong Park# 2*54fd6939SJiyong Park# Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved. 3*54fd6939SJiyong Park# Copyright (c) 2020, NVIDIA Corporation. All rights reserved. 4*54fd6939SJiyong Park# 5*54fd6939SJiyong Park# SPDX-License-Identifier: BSD-3-Clause 6*54fd6939SJiyong Park# 7*54fd6939SJiyong Park 8*54fd6939SJiyong ParkSOC_DIR := plat/nvidia/tegra/soc/${TARGET_SOC} 9*54fd6939SJiyong Park 10*54fd6939SJiyong Park# dump the state on crash console 11*54fd6939SJiyong ParkCRASH_REPORTING := 1 12*54fd6939SJiyong Park$(eval $(call add_define,CRASH_REPORTING)) 13*54fd6939SJiyong Park 14*54fd6939SJiyong Park# enable assert() for release/debug builds 15*54fd6939SJiyong ParkENABLE_ASSERTIONS := 1 16*54fd6939SJiyong ParkPLAT_LOG_LEVEL_ASSERT := 50 17*54fd6939SJiyong Park$(eval $(call add_define,PLAT_LOG_LEVEL_ASSERT)) 18*54fd6939SJiyong Park 19*54fd6939SJiyong Park# enable dynamic memory mapping 20*54fd6939SJiyong ParkPLAT_XLAT_TABLES_DYNAMIC := 1 21*54fd6939SJiyong Park$(eval $(call add_define,PLAT_XLAT_TABLES_DYNAMIC)) 22*54fd6939SJiyong Park 23*54fd6939SJiyong Park# Enable exception handling at EL3 24*54fd6939SJiyong ParkEL3_EXCEPTION_HANDLING := 1 25*54fd6939SJiyong ParkGICV2_G0_FOR_EL3 := 1 26*54fd6939SJiyong Park 27*54fd6939SJiyong Park# Enable PSCI v1.0 extended state ID format 28*54fd6939SJiyong ParkPSCI_EXTENDED_STATE_ID := 1 29*54fd6939SJiyong Park 30*54fd6939SJiyong Park# code and read-only data should be put on separate memory pages 31*54fd6939SJiyong ParkSEPARATE_CODE_AND_RODATA := 1 32*54fd6939SJiyong Park 33*54fd6939SJiyong Park# do not use coherent memory 34*54fd6939SJiyong ParkUSE_COHERENT_MEM := 0 35*54fd6939SJiyong Park 36*54fd6939SJiyong Park# enable D-cache early during CPU warmboot 37*54fd6939SJiyong ParkWARMBOOT_ENABLE_DCACHE_EARLY := 1 38*54fd6939SJiyong Park 39*54fd6939SJiyong Park# remove the standard libc 40*54fd6939SJiyong ParkOVERRIDE_LIBC := 1 41*54fd6939SJiyong Park 42*54fd6939SJiyong Park# Flag to enable WDT FIQ interrupt handling for Tegra SoCs 43*54fd6939SJiyong Park# prior to Tegra186 44*54fd6939SJiyong ParkENABLE_TEGRA_WDT_LEGACY_FIQ_HANDLING ?= 0 45*54fd6939SJiyong Park 46*54fd6939SJiyong Park# Flag to allow relocation of BL32 image to TZDRAM during boot 47*54fd6939SJiyong ParkRELOCATE_BL32_IMAGE ?= 0 48*54fd6939SJiyong Park 49*54fd6939SJiyong Park# Enable stack protection 50*54fd6939SJiyong ParkENABLE_STACK_PROTECTOR := strong 51*54fd6939SJiyong Park 52*54fd6939SJiyong Park# Enable SDEI 53*54fd6939SJiyong ParkSDEI_SUPPORT := 1 54*54fd6939SJiyong Park 55*54fd6939SJiyong Park# modify BUILD_PLAT to point to SoC specific build directory 56*54fd6939SJiyong ParkBUILD_PLAT := ${BUILD_BASE}/${PLAT}/${TARGET_SOC}/${BUILD_TYPE} 57*54fd6939SJiyong Park 58*54fd6939SJiyong Parkinclude plat/nvidia/tegra/common/tegra_common.mk 59*54fd6939SJiyong Parkinclude ${SOC_DIR}/platform_${TARGET_SOC}.mk 60*54fd6939SJiyong Park 61*54fd6939SJiyong Park$(eval $(call add_define,ENABLE_TEGRA_WDT_LEGACY_FIQ_HANDLING)) 62*54fd6939SJiyong Park$(eval $(call add_define,RELOCATE_BL32_IMAGE)) 63*54fd6939SJiyong Park 64*54fd6939SJiyong Park# platform cflags (enable signed comparisons, disable stdlib) 65*54fd6939SJiyong ParkTF_CFLAGS += -nostdlib 66*54fd6939SJiyong Park 67*54fd6939SJiyong Park# override with necessary libc files for the Tegra platform 68*54fd6939SJiyong Parkoverride LIBC_SRCS := $(addprefix lib/libc/, \ 69*54fd6939SJiyong Park aarch64/setjmp.S \ 70*54fd6939SJiyong Park assert.c \ 71*54fd6939SJiyong Park memchr.c \ 72*54fd6939SJiyong Park memcmp.c \ 73*54fd6939SJiyong Park memcpy.c \ 74*54fd6939SJiyong Park memmove.c \ 75*54fd6939SJiyong Park memset.c \ 76*54fd6939SJiyong Park printf.c \ 77*54fd6939SJiyong Park putchar.c \ 78*54fd6939SJiyong Park strrchr.c \ 79*54fd6939SJiyong Park strlen.c \ 80*54fd6939SJiyong Park snprintf.c) 81*54fd6939SJiyong Park 82*54fd6939SJiyong ParkINCLUDES += -Iinclude/lib/libc \ 83*54fd6939SJiyong Park -Iinclude/lib/libc/$(ARCH) \ 84*54fd6939SJiyong Park 85*54fd6939SJiyong Parkifneq ($(findstring armlink,$(notdir $(LD))),) 86*54fd6939SJiyong Park# o suppress warnings for section mismatches, undefined symbols 87*54fd6939SJiyong Park# o use only those libraries that are specified in the input file 88*54fd6939SJiyong Park# list to resolve references 89*54fd6939SJiyong Park# o create a static callgraph of functions 90*54fd6939SJiyong Park# o resolve undefined symbols to el3_panic 91*54fd6939SJiyong Park# o include only required sections 92*54fd6939SJiyong ParkTF_LDFLAGS += --diag_suppress=L6314,L6332 --no_scanlib --callgraph 93*54fd6939SJiyong ParkTF_LDFLAGS += --keep="*(__pubsub*)" --keep="*(rt_svc_descs*)" --keep="*(*cpu_ops)" 94*54fd6939SJiyong Parkifeq (${ENABLE_PMF},1) 95*54fd6939SJiyong ParkTF_LDFLAGS += --keep="*(*pmf_svc_descs*)" 96*54fd6939SJiyong Parkendif 97*54fd6939SJiyong Parkendif 98