mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 17:44:19 +00:00

The toolchain refactor change introduces the `${toolchain}-${tool}-id` variables, which provide identifiers for all of the toolchain tools used by the build system. This change replaces the various conditions that are in use to identify these tools based on the path with a standard set of comparisons against these new identifier variables. Change-Id: Ib60e592359fa6e415c19a012e68d660f87436ca7 Signed-off-by: Chris Kay <chris.kay@arm.com>
97 lines
2.6 KiB
Makefile
97 lines
2.6 KiB
Makefile
#
|
|
# Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
|
|
# Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
SOC_DIR := plat/nvidia/tegra/soc/${TARGET_SOC}
|
|
|
|
# dump the state on crash console
|
|
CRASH_REPORTING := 1
|
|
$(eval $(call add_define,CRASH_REPORTING))
|
|
|
|
# enable assert() for release/debug builds
|
|
ENABLE_ASSERTIONS := 1
|
|
PLAT_LOG_LEVEL_ASSERT := 50
|
|
$(eval $(call add_define,PLAT_LOG_LEVEL_ASSERT))
|
|
|
|
# enable dynamic memory mapping
|
|
PLAT_XLAT_TABLES_DYNAMIC := 1
|
|
$(eval $(call add_define,PLAT_XLAT_TABLES_DYNAMIC))
|
|
|
|
# Enable exception handling at EL3
|
|
EL3_EXCEPTION_HANDLING := 1
|
|
GICV2_G0_FOR_EL3 := 1
|
|
|
|
# Enable PSCI v1.0 extended state ID format
|
|
PSCI_EXTENDED_STATE_ID := 1
|
|
|
|
# code and read-only data should be put on separate memory pages
|
|
SEPARATE_CODE_AND_RODATA := 1
|
|
|
|
# do not use coherent memory
|
|
USE_COHERENT_MEM := 0
|
|
|
|
# enable D-cache early during CPU warmboot
|
|
WARMBOOT_ENABLE_DCACHE_EARLY := 1
|
|
|
|
# remove the standard libc
|
|
OVERRIDE_LIBC := 1
|
|
|
|
# Flag to enable WDT FIQ interrupt handling for Tegra SoCs
|
|
# prior to Tegra186
|
|
ENABLE_TEGRA_WDT_LEGACY_FIQ_HANDLING ?= 0
|
|
|
|
# Flag to allow relocation of BL32 image to TZDRAM during boot
|
|
RELOCATE_BL32_IMAGE ?= 0
|
|
|
|
# Enable stack protection
|
|
ENABLE_STACK_PROTECTOR := strong
|
|
|
|
# Enable SDEI
|
|
SDEI_SUPPORT := 1
|
|
|
|
# modify BUILD_PLAT to point to SoC specific build directory
|
|
BUILD_PLAT := ${BUILD_BASE}/${PLAT}/${TARGET_SOC}/${BUILD_TYPE}
|
|
|
|
include plat/nvidia/tegra/common/tegra_common.mk
|
|
include ${SOC_DIR}/platform_${TARGET_SOC}.mk
|
|
|
|
$(eval $(call add_define,ENABLE_TEGRA_WDT_LEGACY_FIQ_HANDLING))
|
|
$(eval $(call add_define,RELOCATE_BL32_IMAGE))
|
|
|
|
# platform cflags (enable signed comparisons, disable stdlib)
|
|
TF_CFLAGS += -nostdlib
|
|
|
|
# override with necessary libc files for the Tegra platform
|
|
override LIBC_SRCS := $(addprefix lib/libc/, \
|
|
aarch64/setjmp.S \
|
|
assert.c \
|
|
memchr.c \
|
|
memcmp.c \
|
|
memcpy.c \
|
|
memmove.c \
|
|
memset.c \
|
|
printf.c \
|
|
putchar.c \
|
|
strrchr.c \
|
|
strlen.c \
|
|
snprintf.c)
|
|
|
|
INCLUDES += -Iinclude/lib/libc \
|
|
-Iinclude/lib/libc/$(ARCH) \
|
|
|
|
ifeq ($($(ARCH)-ld-id),arm-link)
|
|
# o suppress warnings for section mismatches, undefined symbols
|
|
# o use only those libraries that are specified in the input file
|
|
# list to resolve references
|
|
# o create a static callgraph of functions
|
|
# o resolve undefined symbols to el3_panic
|
|
# o include only required sections
|
|
TF_LDFLAGS += --diag_suppress=L6314,L6332 --no_scanlib --callgraph
|
|
TF_LDFLAGS += --keep="*(.__pubsub*)" --keep="*(.rt_svc_descs*)" --keep="*(.cpu_ops)"
|
|
ifeq (${ENABLE_PMF},1)
|
|
TF_LDFLAGS += --keep="*(.pmf_svc_descs*)"
|
|
endif
|
|
endif
|