blob: 283ad420dba360fa94624d0f8783239a3dafd8af [file] [log] [blame]
Amit Nagalc97857d2024-06-05 12:32:38 +05301# Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.
2# Copyright (c) 2021-2022, Xilinx, Inc. All rights reserved.
Maheedhar Bollapalli5cb91252025-01-23 08:36:57 +00003# Copyright (c) 2022-2025, Advanced Micro Devices, Inc. All rights reserved.
Amit Nagalc97857d2024-06-05 12:32:38 +05304#
5# SPDX-License-Identifier: BSD-3-Clause
6
7PLAT_PATH := plat/amd/versal2
8
Amit Nagal1fbe81f2024-08-08 22:15:19 -12009override NEED_BL1 := no
10override NEED_BL2 := no
11
Amit Nagalc97857d2024-06-05 12:32:38 +053012# A78 Erratum for SoC
13ERRATA_A78_AE_1941500 := 1
14ERRATA_A78_AE_1951502 := 1
15ERRATA_A78_AE_2376748 := 1
16ERRATA_A78_AE_2395408 := 1
17ERRATA_ABI_SUPPORT := 1
18
19# Platform Supports Armv8.2 extensions
20ARM_ARCH_MAJOR := 8
21ARM_ARCH_MINOR := 2
22
23override PROGRAMMABLE_RESET_ADDRESS := 1
24PSCI_EXTENDED_STATE_ID := 1
25SEPARATE_CODE_AND_RODATA := 1
26override RESET_TO_BL31 := 1
27PL011_GENERIC_UART := 1
28IPI_CRC_CHECK := 0
29GIC_ENABLE_V4_EXTN := 0
30GICV3_SUPPORT_GIC600 := 1
Senthil Nathan Thangaraj0cc5e212025-02-20 10:57:26 -080031TFA_NO_PM := 0
Senthil Nathan Thangaraj414cf082025-02-20 10:55:32 -080032CPU_PWRDWN_SGI ?= 6
33$(eval $(call add_define_val,CPU_PWR_DOWN_REQ_INTR,ARM_IRQ_SEC_SGI_${CPU_PWRDWN_SGI}))
Amit Nagalc97857d2024-06-05 12:32:38 +053034
35override CTX_INCLUDE_AARCH32_REGS := 0
36
Akshay Belsare9aa71f42024-09-11 14:17:37 +053037# Platform to support Dynamic XLAT Table by default
38override PLAT_XLAT_TABLES_DYNAMIC := 1
39$(eval $(call add_define,PLAT_XLAT_TABLES_DYNAMIC))
40
Senthil Nathan Thangaraj414cf082025-02-20 10:55:32 -080041ifdef TFA_NO_PM
42 $(eval $(call add_define,TFA_NO_PM))
43endif
44
Amit Nagalc97857d2024-06-05 12:32:38 +053045ifdef MEM_BASE
46 $(eval $(call add_define,MEM_BASE))
47
48 ifndef MEM_SIZE
Michal Simek1e2a5e22024-08-02 13:19:23 +020049 $(error "MEM_BASE defined without MEM_SIZE")
Amit Nagalc97857d2024-06-05 12:32:38 +053050 endif
51 $(eval $(call add_define,MEM_SIZE))
52
53 ifdef MEM_PROGBITS_SIZE
54 $(eval $(call add_define,MEM_PROGBITS_SIZE))
55 endif
56endif
57
58ifdef BL32_MEM_BASE
59 $(eval $(call add_define,BL32_MEM_BASE))
60
61 ifndef BL32_MEM_SIZE
Michal Simek1e2a5e22024-08-02 13:19:23 +020062 $(error "BL32_MEM_BASE defined without BL32_MEM_SIZE")
Amit Nagalc97857d2024-06-05 12:32:38 +053063 endif
64 $(eval $(call add_define,BL32_MEM_SIZE))
65endif
66
67ifdef IPI_CRC_CHECK
68 $(eval $(call add_define,IPI_CRC_CHECK))
69endif
70
71USE_COHERENT_MEM := 0
72HW_ASSISTED_COHERENCY := 1
73
Maheedhar Bollapalli2333ab42025-03-18 09:16:28 +000074CONSOLE ?= pl011
75ifeq (${CONSOLE}, $(filter ${CONSOLE},pl011 pl011_0 pl011_1 dcc dtb none))
Maheedhar Bollapalli11964742024-07-01 07:07:53 +000076 else
Maheedhar Bollapalli2333ab42025-03-18 09:16:28 +000077 $(error "Please define CONSOLE")
Maheedhar Bollapalli11964742024-07-01 07:07:53 +000078 endif
79
Maheedhar Bollapalli2333ab42025-03-18 09:16:28 +000080$(eval $(call add_define_val,CONSOLE,CONSOLE_ID_${CONSOLE}))
Maheedhar Bollapalli11964742024-07-01 07:07:53 +000081
82# Runtime console in default console in DEBUG build
83ifeq ($(DEBUG), 1)
84CONSOLE_RUNTIME ?= pl011
Amit Nagalc97857d2024-06-05 12:32:38 +053085endif
86
Maheedhar Bollapalli11964742024-07-01 07:07:53 +000087# Runtime console
88ifdef CONSOLE_RUNTIME
89ifeq (${CONSOLE_RUNTIME}, $(filter ${CONSOLE_RUNTIME},pl011 pl011_0 pl011_1 dcc dtb))
90$(eval $(call add_define_val,CONSOLE_RUNTIME,RT_CONSOLE_ID_${CONSOLE_RUNTIME}))
91else
92 $(error "Please define CONSOLE_RUNTIME")
93endif
94endif
95
Maheedhar Bollapalli5cb91252025-01-23 08:36:57 +000096ifeq (${TRANSFER_LIST},0)
97XILINX_OF_BOARD_DTB_ADDR ?= 0x1000000
Amit Nagalc97857d2024-06-05 12:32:38 +053098$(eval $(call add_define,XILINX_OF_BOARD_DTB_ADDR))
99endif
100
101PLAT_INCLUDES := -Iinclude/plat/arm/common/ \
102 -Iplat/xilinx/common/include/ \
Maheedhar Bollapallic41edd82024-12-03 10:44:51 +0000103 -Iplat/amd/common/include/ \
Amit Nagalc97857d2024-06-05 12:32:38 +0530104 -Iplat/xilinx/common/ipi_mailbox_service/ \
105 -I${PLAT_PATH}/include/ \
106 -Iplat/xilinx/versal/pm_service/
107
108# Include GICv3 driver files
109include drivers/arm/gic/v3/gicv3.mk
110include lib/xlat_tables_v2/xlat_tables.mk
111include lib/libfdt/libfdt.mk
112
113PLAT_BL_COMMON_SOURCES := \
114 drivers/arm/dcc/dcc_console.c \
115 drivers/delay_timer/delay_timer.c \
116 drivers/delay_timer/generic_delay_timer.c \
117 ${GICV3_SOURCES} \
118 drivers/arm/pl011/aarch64/pl011_console.S \
119 plat/common/aarch64/crash_console_helpers.S \
120 plat/arm/common/arm_common.c \
121 plat/common/plat_gicv3.c \
122 ${PLAT_PATH}/aarch64/helpers.S \
123 ${PLAT_PATH}/aarch64/common.c \
124 ${PLAT_PATH}/plat_topology.c \
125 ${XLAT_TABLES_LIB_SRCS}
126
127BL31_SOURCES += drivers/arm/cci/cci.c \
128 lib/cpus/aarch64/cortex_a78_ae.S \
129 lib/cpus/aarch64/cortex_a78.S \
130 plat/common/plat_psci_common.c \
131 drivers/scmi-msg/base.c \
132 drivers/scmi-msg/entry.c \
133 drivers/scmi-msg/smt.c \
134 drivers/scmi-msg/clock.c \
135 drivers/scmi-msg/power_domain.c \
136 drivers/scmi-msg/reset_domain.c \
137 ${PLAT_PATH}/scmi.c
138
Senthil Nathan Thangaraj414cf082025-02-20 10:55:32 -0800139ifeq ($(TFA_NO_PM), 0)
140BL31_SOURCES += plat/xilinx/common/pm_service/pm_api_sys.c \
141 plat/xilinx/common/pm_service/pm_ipi.c \
142 ${PLAT_PATH}/plat_psci_pm.c \
Senthil Nathan Thangaraj0cc5e212025-02-20 10:57:26 -0800143 ${PLAT_PATH}/pm_service/pm_svc_main.c \
Senthil Nathan Thangaraj414cf082025-02-20 10:55:32 -0800144 ${PLAT_PATH}/pm_service/pm_client.c
145else
146BL31_SOURCES += ${PLAT_PATH}/plat_psci.c
147endif
148
149BL31_SOURCES += common/fdt_wrappers.c \
Maheedhar Bollapalli11964742024-07-01 07:07:53 +0000150 plat/xilinx/common/plat_console.c \
Amit Nagalc97857d2024-06-05 12:32:38 +0530151 plat/xilinx/common/plat_startup.c \
152 plat/xilinx/common/ipi.c \
153 plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.c \
154 ${PLAT_PATH}/soc_ipi.c \
155 plat/xilinx/common/versal.c \
156 ${PLAT_PATH}/bl31_setup.c \
157 common/fdt_fixup.c \
Andre Przywara42488062024-03-21 13:27:56 +0000158 common/fdt_wrappers.c \
Amit Nagalc97857d2024-06-05 12:32:38 +0530159 ${LIBFDT_SRCS} \
160 ${PLAT_PATH}/sip_svc_setup.c \
161 ${PLAT_PATH}/gicv3.c
162
Saivardhan Thatikondac3ab09d2025-03-05 14:18:37 +0000163
164ifeq ($(DEBUG),1)
165BL31_SOURCES += ${PLAT_PATH}/plat_ocm_coherency.c
166endif
167
Amit Nagalc97857d2024-06-05 12:32:38 +0530168ifeq (${ERRATA_ABI_SUPPORT}, 1)
169# enable the cpu macros for errata abi interface
170CORTEX_A78_AE_H_INC := 1
171$(eval $(call add_define, CORTEX_A78_AE_H_INC))
172endif
Amit Nagal1fbe81f2024-08-08 22:15:19 -1200173
174# Enable Handoff protocol using transfer lists
Maheedhar Bollapalli5cb91252025-01-23 08:36:57 +0000175TRANSFER_LIST ?= 0
Amit Nagal1fbe81f2024-08-08 22:15:19 -1200176
Maheedhar Bollapalliea453872024-12-04 04:12:53 +0000177ifeq (${TRANSFER_LIST},1)
Amit Nagal1fbe81f2024-08-08 22:15:19 -1200178include lib/transfer_list/transfer_list.mk
Maheedhar Bollapalliea453872024-12-04 04:12:53 +0000179BL31_SOURCES += plat/amd/common/plat_fdt.c
180BL31_SOURCES += plat/amd/common/plat_xfer_list.c
181else
182BL31_SOURCES += plat/xilinx/common/plat_fdt.c
183endif
Maheedhar Bollapalli4c5cf472024-12-04 04:05:04 +0000184
185XLNX_DT_CFG ?= 1
186ifeq (${TRANSFER_LIST},0)
187ifndef XILINX_OF_BOARD_DTB_ADDR
188XLNX_DT_CFG := 0
189endif
190endif
191$(eval $(call add_define,XLNX_DT_CFG))