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