1#
2# Copyright (c) 2019-2023, NVIDIA CORPORATION. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
7include common/fdt_wrappers.mk
8
9ARM_ARCH_MAJOR := 8
10ARM_ARCH_MINOR := 2
11
12# platform configs
13ENABLE_CONSOLE_SPE			:= 1
14$(eval $(call add_define,ENABLE_CONSOLE_SPE))
15
16ENABLE_STRICT_CHECKING_MODE		:= 1
17$(eval $(call add_define,ENABLE_STRICT_CHECKING_MODE))
18
19USE_GPC_DMA				:= 1
20$(eval $(call add_define,USE_GPC_DMA))
21
22RESET_TO_BL31				:= 1
23
24PROGRAMMABLE_RESET_ADDRESS		:= 1
25
26COLD_BOOT_SINGLE_CPU			:= 1
27
28# platform settings
29TZDRAM_BASE				:= 0x40000000
30$(eval $(call add_define,TZDRAM_BASE))
31
32MAX_XLAT_TABLES				:= 25
33$(eval $(call add_define,MAX_XLAT_TABLES))
34
35MAX_MMAP_REGIONS			:= 30
36$(eval $(call add_define,MAX_MMAP_REGIONS))
37
38# enable RAS handling
39HANDLE_EA_EL3_FIRST_NS			:= 1
40ENABLE_FEAT_RAS				:= 1
41
42# platform files
43PLAT_INCLUDES		+=	-Iplat/nvidia/tegra/include/t194 \
44				-I${SOC_DIR}/drivers/include
45
46BL31_SOURCES		+=	${TEGRA_GICv2_SOURCES}			\
47				drivers/ti/uart/aarch64/16550_console.S \
48				lib/cpus/aarch64/denver.S		\
49				${TEGRA_DRIVERS}/bpmp_ipc/intf.c	\
50				${TEGRA_DRIVERS}/bpmp_ipc/ivc.c		\
51				${TEGRA_DRIVERS}/memctrl/memctrl_v2.c	\
52				${TEGRA_DRIVERS}/smmu/smmu.c		\
53				${SOC_DIR}/drivers/mce/mce.c		\
54				${SOC_DIR}/drivers/mce/nvg.c		\
55				${SOC_DIR}/drivers/mce/aarch64/nvg_helpers.S \
56				${SOC_DIR}/drivers/se/se.c		\
57				${SOC_DIR}/plat_memctrl.c		\
58				${SOC_DIR}/plat_psci_handlers.c		\
59				${SOC_DIR}/plat_setup.c			\
60				${SOC_DIR}/plat_secondary.c		\
61				${SOC_DIR}/plat_sip_calls.c		\
62				${SOC_DIR}/plat_smmu.c			\
63				${SOC_DIR}/plat_trampoline.S
64
65ifeq (${USE_GPC_DMA}, 1)
66BL31_SOURCES		+=	${TEGRA_DRIVERS}/gpcdma/gpcdma.c
67endif
68
69ifeq (${ENABLE_CONSOLE_SPE},1)
70BL31_SOURCES		+=	${TEGRA_DRIVERS}/spe/shared_console.S
71endif
72
73# RAS sources
74ifeq (${ENABLE_FEAT_RAS}-${HANDLE_EA_EL3_FIRST_NS},1-1)
75BL31_SOURCES		+=	lib/extensions/ras/std_err_record.c		\
76				lib/extensions/ras/ras_common.c			\
77				${SOC_DIR}/plat_ras.c
78endif
79
80# SPM dispatcher
81ifeq (${SPD},spmd)
82include lib/libfdt/libfdt.mk
83# sources to support spmd
84BL31_SOURCES		+=	plat/common/plat_spmd_manifest.c	\
85				${LIBFDT_SRCS}
86
87BL31_SOURCES		+=	${FDT_WRAPPERS_SOURCES}
88endif
89