xref: /arm-trusted-firmware/plat/xilinx/versal_net/platform.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu# Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.
2*91f16700Schasinglulu# Copyright (c) 2021-2022, Xilinx, Inc. All rights reserved.
3*91f16700Schasinglulu# Copyright (c) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.
4*91f16700Schasinglulu#
5*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause
6*91f16700Schasinglulu
7*91f16700SchasingluluPLAT_PATH := plat/xilinx/versal_net
8*91f16700Schasinglulu
9*91f16700Schasinglulu# A78 Erratum for SoC
10*91f16700SchasingluluERRATA_A78_AE_1941500 := 1
11*91f16700SchasingluluERRATA_A78_AE_1951502 := 1
12*91f16700SchasingluluERRATA_A78_AE_2376748 := 1
13*91f16700SchasingluluERRATA_A78_AE_2395408 := 1
14*91f16700Schasinglulu
15*91f16700Schasingluluoverride PROGRAMMABLE_RESET_ADDRESS := 1
16*91f16700SchasingluluPSCI_EXTENDED_STATE_ID := 1
17*91f16700SchasingluluSEPARATE_CODE_AND_RODATA := 1
18*91f16700Schasingluluoverride RESET_TO_BL31 := 1
19*91f16700SchasingluluPL011_GENERIC_UART := 1
20*91f16700SchasingluluIPI_CRC_CHECK := 0
21*91f16700SchasingluluGIC_ENABLE_V4_EXTN :=  0
22*91f16700SchasingluluGICV3_SUPPORT_GIC600 := 1
23*91f16700SchasingluluTFA_NO_PM := 0
24*91f16700Schasinglulu
25*91f16700Schasingluluoverride CTX_INCLUDE_AARCH32_REGS    := 0
26*91f16700Schasinglulu
27*91f16700Schasingluluifdef TFA_NO_PM
28*91f16700Schasinglulu   $(eval $(call add_define,TFA_NO_PM))
29*91f16700Schasingluluendif
30*91f16700Schasinglulu
31*91f16700Schasingluluifdef VERSAL_NET_ATF_MEM_BASE
32*91f16700Schasinglulu    $(eval $(call add_define,VERSAL_NET_ATF_MEM_BASE))
33*91f16700Schasinglulu
34*91f16700Schasinglulu    ifndef VERSAL_NET_ATF_MEM_SIZE
35*91f16700Schasinglulu        $(error "VERSAL_NET_ATF_BASE defined without VERSAL_NET_ATF_SIZE")
36*91f16700Schasinglulu    endif
37*91f16700Schasinglulu    $(eval $(call add_define,VERSAL_NET_ATF_MEM_SIZE))
38*91f16700Schasinglulu
39*91f16700Schasinglulu    ifdef VERSAL_NET_ATF_MEM_PROGBITS_SIZE
40*91f16700Schasinglulu        $(eval $(call add_define,VERSAL_NET_ATF_MEM_PROGBITS_SIZE))
41*91f16700Schasinglulu    endif
42*91f16700Schasingluluendif
43*91f16700Schasinglulu
44*91f16700Schasingluluifdef VERSAL_NET_BL32_MEM_BASE
45*91f16700Schasinglulu    $(eval $(call add_define,VERSAL_NET_BL32_MEM_BASE))
46*91f16700Schasinglulu
47*91f16700Schasinglulu    ifndef VERSAL_NET_BL32_MEM_SIZE
48*91f16700Schasinglulu        $(error "VERSAL_NET_BL32_BASE defined without VERSAL_NET_BL32_SIZE")
49*91f16700Schasinglulu    endif
50*91f16700Schasinglulu    $(eval $(call add_define,VERSAL_NET_BL32_MEM_SIZE))
51*91f16700Schasingluluendif
52*91f16700Schasinglulu
53*91f16700Schasingluluifdef IPI_CRC_CHECK
54*91f16700Schasinglulu    $(eval $(call add_define,IPI_CRC_CHECK))
55*91f16700Schasingluluendif
56*91f16700Schasinglulu
57*91f16700SchasingluluUSE_COHERENT_MEM := 0
58*91f16700SchasingluluHW_ASSISTED_COHERENCY := 1
59*91f16700Schasinglulu
60*91f16700SchasingluluVERSAL_NET_CONSOLE	?=	pl011
61*91f16700Schasingluluifeq (${VERSAL_NET_CONSOLE}, $(filter ${VERSAL_NET_CONSOLE},pl011 pl011_0 pl011_1 dcc))
62*91f16700Schasingluluelse
63*91f16700Schasinglulu  $(error Please define VERSAL_NET_CONSOLE)
64*91f16700Schasingluluendif
65*91f16700Schasinglulu
66*91f16700Schasinglulu$(eval $(call add_define_val,VERSAL_NET_CONSOLE,VERSAL_NET_CONSOLE_ID_${VERSAL_NET_CONSOLE}))
67*91f16700Schasinglulu
68*91f16700Schasingluluifdef XILINX_OF_BOARD_DTB_ADDR
69*91f16700Schasinglulu$(eval $(call add_define,XILINX_OF_BOARD_DTB_ADDR))
70*91f16700Schasingluluendif
71*91f16700Schasinglulu
72*91f16700Schasinglulu# enable assert() for release/debug builds
73*91f16700SchasingluluENABLE_ASSERTIONS := 1
74*91f16700Schasinglulu
75*91f16700SchasingluluPLAT_INCLUDES		:=	-Iinclude/plat/arm/common/			\
76*91f16700Schasinglulu				-Iplat/xilinx/common/include/			\
77*91f16700Schasinglulu				-Iplat/xilinx/common/ipi_mailbox_service/	\
78*91f16700Schasinglulu				-I${PLAT_PATH}/include/				\
79*91f16700Schasinglulu				-Iplat/xilinx/versal/pm_service/
80*91f16700Schasinglulu
81*91f16700Schasinglulu# Include GICv3 driver files
82*91f16700Schasingluluinclude drivers/arm/gic/v3/gicv3.mk
83*91f16700Schasingluluinclude lib/xlat_tables_v2/xlat_tables.mk
84*91f16700Schasingluluinclude lib/libfdt/libfdt.mk
85*91f16700Schasinglulu
86*91f16700SchasingluluPLAT_BL_COMMON_SOURCES	:=	\
87*91f16700Schasinglulu				drivers/arm/dcc/dcc_console.c			\
88*91f16700Schasinglulu				drivers/delay_timer/delay_timer.c		\
89*91f16700Schasinglulu				drivers/delay_timer/generic_delay_timer.c	\
90*91f16700Schasinglulu				${GICV3_SOURCES}				\
91*91f16700Schasinglulu				drivers/arm/pl011/aarch64/pl011_console.S	\
92*91f16700Schasinglulu				plat/common/aarch64/crash_console_helpers.S	\
93*91f16700Schasinglulu				plat/arm/common/arm_common.c			\
94*91f16700Schasinglulu				plat/common/plat_gicv3.c			\
95*91f16700Schasinglulu				${PLAT_PATH}/aarch64/versal_net_helpers.S	\
96*91f16700Schasinglulu				${PLAT_PATH}/aarch64/versal_net_common.c
97*91f16700Schasinglulu
98*91f16700SchasingluluBL31_SOURCES		+=	drivers/arm/cci/cci.c				\
99*91f16700Schasinglulu				lib/cpus/aarch64/cortex_a78_ae.S		\
100*91f16700Schasinglulu				lib/cpus/aarch64/cortex_a78.S			\
101*91f16700Schasinglulu				plat/common/plat_psci_common.c
102*91f16700Schasingluluifeq ($(TFA_NO_PM), 0)
103*91f16700SchasingluluBL31_SOURCES		+=	plat/xilinx/common/pm_service/pm_api_sys.c	\
104*91f16700Schasinglulu				plat/xilinx/common/pm_service/pm_ipi.c		\
105*91f16700Schasinglulu				${PLAT_PATH}/plat_psci_pm.c			\
106*91f16700Schasinglulu				plat/xilinx/common/pm_service/pm_svc_main.c	\
107*91f16700Schasinglulu				${PLAT_PATH}/pm_service/pm_client.c		\
108*91f16700Schasinglulu				${PLAT_PATH}/versal_net_ipi.c
109*91f16700Schasingluluelse
110*91f16700SchasingluluBL31_SOURCES		+=	${PLAT_PATH}/plat_psci.c
111*91f16700Schasingluluendif
112*91f16700SchasingluluBL31_SOURCES		+=	plat/xilinx/common/plat_fdt.c			\
113*91f16700Schasinglulu				plat/xilinx/common/plat_startup.c		\
114*91f16700Schasinglulu				plat/xilinx/common/plat_console.c		\
115*91f16700Schasinglulu				plat/xilinx/common/ipi.c			\
116*91f16700Schasinglulu				plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.c \
117*91f16700Schasinglulu				plat/xilinx/common/versal.c			\
118*91f16700Schasinglulu				${PLAT_PATH}/bl31_versal_net_setup.c		\
119*91f16700Schasinglulu				${PLAT_PATH}/plat_topology.c			\
120*91f16700Schasinglulu				common/fdt_fixup.c				\
121*91f16700Schasinglulu				common/fdt_wrappers.c				\
122*91f16700Schasinglulu				${LIBFDT_SRCS}					\
123*91f16700Schasinglulu				${PLAT_PATH}/sip_svc_setup.c			\
124*91f16700Schasinglulu				${PLAT_PATH}/versal_net_gicv3.c			\
125*91f16700Schasinglulu				${XLAT_TABLES_LIB_SRCS}
126