1*c97857dbSAmit Nagal# Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved. 2*c97857dbSAmit Nagal# Copyright (c) 2021-2022, Xilinx, Inc. All rights reserved. 3*c97857dbSAmit Nagal# Copyright (c) 2022-2024, Advanced Micro Devices, Inc. All rights reserved. 4*c97857dbSAmit Nagal# 5*c97857dbSAmit Nagal# SPDX-License-Identifier: BSD-3-Clause 6*c97857dbSAmit Nagal 7*c97857dbSAmit NagalPLAT_PATH := plat/amd/versal2 8*c97857dbSAmit Nagal 9*c97857dbSAmit Nagal# A78 Erratum for SoC 10*c97857dbSAmit NagalERRATA_A78_AE_1941500 := 1 11*c97857dbSAmit NagalERRATA_A78_AE_1951502 := 1 12*c97857dbSAmit NagalERRATA_A78_AE_2376748 := 1 13*c97857dbSAmit NagalERRATA_A78_AE_2395408 := 1 14*c97857dbSAmit NagalERRATA_ABI_SUPPORT := 1 15*c97857dbSAmit Nagal 16*c97857dbSAmit Nagal# Platform Supports Armv8.2 extensions 17*c97857dbSAmit NagalARM_ARCH_MAJOR := 8 18*c97857dbSAmit NagalARM_ARCH_MINOR := 2 19*c97857dbSAmit Nagal 20*c97857dbSAmit Nagaloverride PROGRAMMABLE_RESET_ADDRESS := 1 21*c97857dbSAmit NagalPSCI_EXTENDED_STATE_ID := 1 22*c97857dbSAmit NagalSEPARATE_CODE_AND_RODATA := 1 23*c97857dbSAmit Nagaloverride RESET_TO_BL31 := 1 24*c97857dbSAmit NagalPL011_GENERIC_UART := 1 25*c97857dbSAmit NagalIPI_CRC_CHECK := 0 26*c97857dbSAmit NagalGIC_ENABLE_V4_EXTN := 0 27*c97857dbSAmit NagalGICV3_SUPPORT_GIC600 := 1 28*c97857dbSAmit Nagal 29*c97857dbSAmit Nagaloverride CTX_INCLUDE_AARCH32_REGS := 0 30*c97857dbSAmit Nagal 31*c97857dbSAmit Nagalifdef MEM_BASE 32*c97857dbSAmit Nagal $(eval $(call add_define,MEM_BASE)) 33*c97857dbSAmit Nagal 34*c97857dbSAmit Nagal ifndef MEM_SIZE 35*c97857dbSAmit Nagal $(error "ATF_BASE defined without ATF_SIZE") 36*c97857dbSAmit Nagal endif 37*c97857dbSAmit Nagal $(eval $(call add_define,MEM_SIZE)) 38*c97857dbSAmit Nagal 39*c97857dbSAmit Nagal ifdef MEM_PROGBITS_SIZE 40*c97857dbSAmit Nagal $(eval $(call add_define,MEM_PROGBITS_SIZE)) 41*c97857dbSAmit Nagal endif 42*c97857dbSAmit Nagalendif 43*c97857dbSAmit Nagal 44*c97857dbSAmit Nagalifdef BL32_MEM_BASE 45*c97857dbSAmit Nagal $(eval $(call add_define,BL32_MEM_BASE)) 46*c97857dbSAmit Nagal 47*c97857dbSAmit Nagal ifndef BL32_MEM_SIZE 48*c97857dbSAmit Nagal $(error "BL32_BASE defined without BL32_SIZE") 49*c97857dbSAmit Nagal endif 50*c97857dbSAmit Nagal $(eval $(call add_define,BL32_MEM_SIZE)) 51*c97857dbSAmit Nagalendif 52*c97857dbSAmit Nagal 53*c97857dbSAmit Nagalifdef IPI_CRC_CHECK 54*c97857dbSAmit Nagal $(eval $(call add_define,IPI_CRC_CHECK)) 55*c97857dbSAmit Nagalendif 56*c97857dbSAmit Nagal 57*c97857dbSAmit NagalUSE_COHERENT_MEM := 0 58*c97857dbSAmit NagalHW_ASSISTED_COHERENCY := 1 59*c97857dbSAmit Nagal 60*c97857dbSAmit NagalCONSOLE ?= pl011 61*c97857dbSAmit Nagalifeq (${CONSOLE}, $(filter ${CONSOLE},pl011 pl011_0 pl011_1 dcc)) 62*c97857dbSAmit Nagalelse 63*c97857dbSAmit Nagal $(error Please define CONSOLE) 64*c97857dbSAmit Nagalendif 65*c97857dbSAmit Nagal 66*c97857dbSAmit Nagal$(eval $(call add_define_val,CONSOLE,CONSOLE_ID_${CONSOLE})) 67*c97857dbSAmit Nagal 68*c97857dbSAmit Nagalifdef XILINX_OF_BOARD_DTB_ADDR 69*c97857dbSAmit Nagal$(eval $(call add_define,XILINX_OF_BOARD_DTB_ADDR)) 70*c97857dbSAmit Nagalendif 71*c97857dbSAmit Nagal 72*c97857dbSAmit NagalPLAT_INCLUDES := -Iinclude/plat/arm/common/ \ 73*c97857dbSAmit Nagal -Iplat/xilinx/common/include/ \ 74*c97857dbSAmit Nagal -Iplat/xilinx/common/ipi_mailbox_service/ \ 75*c97857dbSAmit Nagal -I${PLAT_PATH}/include/ \ 76*c97857dbSAmit Nagal -Iplat/xilinx/versal/pm_service/ 77*c97857dbSAmit Nagal 78*c97857dbSAmit Nagal# Include GICv3 driver files 79*c97857dbSAmit Nagalinclude drivers/arm/gic/v3/gicv3.mk 80*c97857dbSAmit Nagalinclude lib/xlat_tables_v2/xlat_tables.mk 81*c97857dbSAmit Nagalinclude lib/libfdt/libfdt.mk 82*c97857dbSAmit Nagal 83*c97857dbSAmit NagalPLAT_BL_COMMON_SOURCES := \ 84*c97857dbSAmit Nagal drivers/arm/dcc/dcc_console.c \ 85*c97857dbSAmit Nagal drivers/delay_timer/delay_timer.c \ 86*c97857dbSAmit Nagal drivers/delay_timer/generic_delay_timer.c \ 87*c97857dbSAmit Nagal ${GICV3_SOURCES} \ 88*c97857dbSAmit Nagal drivers/arm/pl011/aarch64/pl011_console.S \ 89*c97857dbSAmit Nagal plat/common/aarch64/crash_console_helpers.S \ 90*c97857dbSAmit Nagal plat/arm/common/arm_common.c \ 91*c97857dbSAmit Nagal plat/common/plat_gicv3.c \ 92*c97857dbSAmit Nagal ${PLAT_PATH}/aarch64/helpers.S \ 93*c97857dbSAmit Nagal ${PLAT_PATH}/aarch64/common.c \ 94*c97857dbSAmit Nagal ${PLAT_PATH}/plat_topology.c \ 95*c97857dbSAmit Nagal ${XLAT_TABLES_LIB_SRCS} 96*c97857dbSAmit Nagal 97*c97857dbSAmit NagalBL31_SOURCES += drivers/arm/cci/cci.c \ 98*c97857dbSAmit Nagal lib/cpus/aarch64/cortex_a78_ae.S \ 99*c97857dbSAmit Nagal lib/cpus/aarch64/cortex_a78.S \ 100*c97857dbSAmit Nagal plat/common/plat_psci_common.c \ 101*c97857dbSAmit Nagal drivers/scmi-msg/base.c \ 102*c97857dbSAmit Nagal drivers/scmi-msg/entry.c \ 103*c97857dbSAmit Nagal drivers/scmi-msg/smt.c \ 104*c97857dbSAmit Nagal drivers/scmi-msg/clock.c \ 105*c97857dbSAmit Nagal drivers/scmi-msg/power_domain.c \ 106*c97857dbSAmit Nagal drivers/scmi-msg/reset_domain.c \ 107*c97857dbSAmit Nagal ${PLAT_PATH}/scmi.c 108*c97857dbSAmit Nagal 109*c97857dbSAmit NagalBL31_SOURCES += ${PLAT_PATH}/plat_psci.c 110*c97857dbSAmit Nagal 111*c97857dbSAmit NagalBL31_SOURCES += plat/xilinx/common/plat_fdt.c \ 112*c97857dbSAmit Nagal plat/xilinx/common/plat_startup.c \ 113*c97857dbSAmit Nagal plat/xilinx/common/ipi.c \ 114*c97857dbSAmit Nagal plat/xilinx/common/ipi_mailbox_service/ipi_mailbox_svc.c \ 115*c97857dbSAmit Nagal ${PLAT_PATH}/soc_ipi.c \ 116*c97857dbSAmit Nagal plat/xilinx/common/versal.c \ 117*c97857dbSAmit Nagal ${PLAT_PATH}/bl31_setup.c \ 118*c97857dbSAmit Nagal common/fdt_fixup.c \ 119*c97857dbSAmit Nagal ${LIBFDT_SRCS} \ 120*c97857dbSAmit Nagal ${PLAT_PATH}/sip_svc_setup.c \ 121*c97857dbSAmit Nagal ${PLAT_PATH}/gicv3.c 122*c97857dbSAmit Nagal 123*c97857dbSAmit Nagalifeq (${ERRATA_ABI_SUPPORT}, 1) 124*c97857dbSAmit Nagal# enable the cpu macros for errata abi interface 125*c97857dbSAmit NagalCORTEX_A78_AE_H_INC := 1 126*c97857dbSAmit Nagal$(eval $(call add_define, CORTEX_A78_AE_H_INC)) 127*c97857dbSAmit Nagalendif 128