1*6393c787SUsama Arif# 2*6393c787SUsama Arif# Copyright (c) 2019, Arm Limited. All rights reserved. 3*6393c787SUsama Arif# 4*6393c787SUsama Arif# SPDX-License-Identifier: BSD-3-Clause 5*6393c787SUsama Arif# 6*6393c787SUsama Arif 7*6393c787SUsama Arififdef ARM_CORTEX_A5 8*6393c787SUsama Arif# Use the SP804 timer instead of the generic one 9*6393c787SUsama ArifFVP_VE_USE_SP804_TIMER := 1 10*6393c787SUsama Arif$(eval $(call add_define,FVP_VE_USE_SP804_TIMER)) 11*6393c787SUsama ArifBL2_SOURCES += drivers/arm/sp804/sp804_delay_timer.c 12*6393c787SUsama Arifendif 13*6393c787SUsama Arif 14*6393c787SUsama ArifFVP_VE_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \ 15*6393c787SUsama Arif drivers/arm/gic/v2/gicv2_main.c \ 16*6393c787SUsama Arif drivers/arm/gic/v2/gicv2_helpers.c \ 17*6393c787SUsama Arif plat/common/plat_gicv2.c \ 18*6393c787SUsama Arif plat/arm/common/arm_gicv2.c 19*6393c787SUsama Arif 20*6393c787SUsama ArifFVP_VE_SECURITY_SOURCES := plat/arm/board/fvp_ve/fvp_ve_security.c 21*6393c787SUsama Arif 22*6393c787SUsama ArifPLAT_INCLUDES := -Iplat/arm/board/fvp_ve/include 23*6393c787SUsama Arif 24*6393c787SUsama ArifPLAT_BL_COMMON_SOURCES := plat/arm/board/fvp_ve/fvp_ve_common.c \ 25*6393c787SUsama Arif plat/arm/common/${ARCH}/arm_helpers.S \ 26*6393c787SUsama Arif plat/arm/common/arm_common.c \ 27*6393c787SUsama Arif plat/arm/common/arm_console.c \ 28*6393c787SUsama Arif drivers/arm/pl011/${ARCH}/pl011_console.S \ 29*6393c787SUsama Arif plat/arm/board/common/${ARCH}/board_arm_helpers.S 30*6393c787SUsama Arif 31*6393c787SUsama Arififdef ARM_CORTEX_A5 32*6393c787SUsama ArifFVP_VE_CPU_LIBS := lib/cpus/aarch32/cortex_a5.S 33*6393c787SUsama Arifelse 34*6393c787SUsama ArifFVP_VE_CPU_LIBS := lib/cpus/aarch32/cortex_a7.S 35*6393c787SUsama Arifendif 36*6393c787SUsama Arif 37*6393c787SUsama ArifBL1_SOURCES += drivers/arm/sp805/sp805.c \ 38*6393c787SUsama Arif drivers/io/io_fip.c \ 39*6393c787SUsama Arif drivers/io/io_memmap.c \ 40*6393c787SUsama Arif drivers/io/io_storage.c \ 41*6393c787SUsama Arif plat/arm/common/arm_bl1_setup.c \ 42*6393c787SUsama Arif plat/arm/common/arm_err.c \ 43*6393c787SUsama Arif plat/arm/common/arm_io_storage.c \ 44*6393c787SUsama Arif drivers/cfi/v2m/v2m_flash.c \ 45*6393c787SUsama Arif plat/arm/board/fvp_ve/${ARCH}/fvp_ve_helpers.S \ 46*6393c787SUsama Arif plat/arm/board/fvp_ve/fvp_ve_bl1_setup.c \ 47*6393c787SUsama Arif lib/aarch32/arm32_aeabi_divmod.c \ 48*6393c787SUsama Arif lib/aarch32/arm32_aeabi_divmod_a32.S \ 49*6393c787SUsama Arif ${FVP_VE_CPU_LIBS} \ 50*6393c787SUsama Arif ${DYN_CFG_SOURCES} 51*6393c787SUsama Arif 52*6393c787SUsama ArifBL2_SOURCES += plat/arm/board/fvp_ve/fvp_ve_bl2_setup.c \ 53*6393c787SUsama Arif lib/aarch32/arm32_aeabi_divmod.c \ 54*6393c787SUsama Arif lib/aarch32/arm32_aeabi_divmod_a32.S \ 55*6393c787SUsama Arif drivers/delay_timer/delay_timer.c \ 56*6393c787SUsama Arif drivers/delay_timer/generic_delay_timer.c \ 57*6393c787SUsama Arif drivers/cfi/v2m/v2m_flash.c \ 58*6393c787SUsama Arif drivers/io/io_fip.c \ 59*6393c787SUsama Arif drivers/io/io_memmap.c \ 60*6393c787SUsama Arif drivers/io/io_storage.c \ 61*6393c787SUsama Arif plat/arm/common/arm_bl2_setup.c \ 62*6393c787SUsama Arif plat/arm/common/arm_err.c \ 63*6393c787SUsama Arif plat/arm/common/arm_io_storage.c \ 64*6393c787SUsama Arif plat/arm/common/${ARCH}/arm_bl2_mem_params_desc.c \ 65*6393c787SUsama Arif plat/arm/common/arm_image_load.c \ 66*6393c787SUsama Arif common/desc_image_load.c \ 67*6393c787SUsama Arif ${DYN_CFG_SOURCES} \ 68*6393c787SUsama Arif ${FVP_VE_SECURITY_SOURCES} 69*6393c787SUsama Arif 70*6393c787SUsama Arif# Add the FDT_SOURCES and options for Dynamic Config (only for Unix env) 71*6393c787SUsama Arififdef UNIX_MK 72*6393c787SUsama Arif 73*6393c787SUsama ArifFDT_SOURCES += plat/arm/board/fvp_ve/fdts/fvp_ve_tb_fw_config.dts 74*6393c787SUsama Arif 75*6393c787SUsama ArifFVP_TB_FW_CONFIG := ${BUILD_PLAT}/fdts/fvp_ve_tb_fw_config.dtb 76*6393c787SUsama Arif 77*6393c787SUsama Arif# Add the TB_FW_CONFIG to FIP and specify the same to certtool 78*6393c787SUsama Arif$(eval $(call TOOL_ADD_PAYLOAD,${FVP_TB_FW_CONFIG},--tb-fw-config)) 79*6393c787SUsama Arif 80*6393c787SUsama ArifFDT_SOURCES += ${FVP_HW_CONFIG_DTS} 81*6393c787SUsama Arif$(eval FVP_HW_CONFIG := ${BUILD_PLAT}/$(patsubst %.dts,%.dtb, \ 82*6393c787SUsama Arif fdts/$(notdir ${FVP_HW_CONFIG_DTS}))) 83*6393c787SUsama Arif# Add the HW_CONFIG to FIP and specify the same to certtool 84*6393c787SUsama Arif$(eval $(call TOOL_ADD_PAYLOAD,${FVP_HW_CONFIG},--hw-config)) 85*6393c787SUsama Arifendif 86*6393c787SUsama Arif 87*6393c787SUsama ArifNEED_BL32 := yes 88*6393c787SUsama Arif 89*6393c787SUsama Arif# Modification of arm_common.mk 90*6393c787SUsama Arif 91*6393c787SUsama Arif# Process ARM_DISABLE_TRUSTED_WDOG flag 92*6393c787SUsama Arif# By default, Trusted Watchdog is always enabled unless SPIN_ON_BL1_EXIT is set 93*6393c787SUsama ArifARM_DISABLE_TRUSTED_WDOG := 0 94*6393c787SUsama Arififeq (${SPIN_ON_BL1_EXIT}, 1) 95*6393c787SUsama ArifARM_DISABLE_TRUSTED_WDOG := 1 96*6393c787SUsama Arifendif 97*6393c787SUsama Arif$(eval $(call assert_boolean,ARM_DISABLE_TRUSTED_WDOG)) 98*6393c787SUsama Arif$(eval $(call add_define,ARM_DISABLE_TRUSTED_WDOG)) 99*6393c787SUsama Arif 100*6393c787SUsama Arif# Use translation tables library v1 if using Cortex-A5 101*6393c787SUsama Arififdef ARM_CORTEX_A5 102*6393c787SUsama ArifARM_XLAT_TABLES_LIB_V1 := 1 103*6393c787SUsama Arifelse 104*6393c787SUsama ArifARM_XLAT_TABLES_LIB_V1 := 0 105*6393c787SUsama Arifendif 106*6393c787SUsama Arif$(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1)) 107*6393c787SUsama Arif$(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1)) 108*6393c787SUsama Arif 109*6393c787SUsama ArifMULTI_CONSOLE_API := 1 110*6393c787SUsama Arif 111*6393c787SUsama Arififeq (${ARM_XLAT_TABLES_LIB_V1}, 1) 112*6393c787SUsama Arif # Only use nonlpae version of xlatv1 otherwise use xlat v2 113*6393c787SUsama Arif PLAT_BL_COMMON_SOURCES += lib/xlat_tables/${ARCH}/nonlpae_tables.c 114*6393c787SUsama Arifelse 115*6393c787SUsama Arif include lib/xlat_tables_v2/xlat_tables.mk 116*6393c787SUsama Arif PLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} 117*6393c787SUsama Arifendif 118*6393c787SUsama Arif 119*6393c787SUsama Arif# Add `libfdt` and Arm common helpers required for Dynamic Config 120*6393c787SUsama Arifinclude lib/libfdt/libfdt.mk 121*6393c787SUsama Arif 122*6393c787SUsama ArifDYN_CFG_SOURCES += plat/arm/common/arm_dyn_cfg.c \ 123*6393c787SUsama Arif plat/arm/common/arm_dyn_cfg_helpers.c \ 124*6393c787SUsama Arif common/fdt_wrappers.c 125*6393c787SUsama Arif 126