1717448d6SSheetal Tigadoli# 2717448d6SSheetal Tigadoli# Copyright (c) 2015 - 2020, Broadcom 3717448d6SSheetal Tigadoli# 4717448d6SSheetal Tigadoli# SPDX-License-Identifier: BSD-3-Clause 5717448d6SSheetal Tigadoli# 6717448d6SSheetal Tigadoli 7717448d6SSheetal TigadoliPLAT_BL_COMMON_SOURCES += plat/brcm/board/common/board_common.c 8717448d6SSheetal Tigadoli 9717448d6SSheetal Tigadoli# If no board config makefile, do not include it 10717448d6SSheetal Tigadoliifneq (${BOARD_CFG},) 11717448d6SSheetal TigadoliBOARD_CFG_MAKE := $(shell find plat/brcm/board/${PLAT} -name '${BOARD_CFG}.mk') 12717448d6SSheetal Tigadoli$(eval $(call add_define,BOARD_CFG)) 13717448d6SSheetal Tigadoliifneq (${BOARD_CFG_MAKE},) 14717448d6SSheetal Tigadoli$(info Including ${BOARD_CFG_MAKE}) 15717448d6SSheetal Tigadoliinclude ${BOARD_CFG_MAKE} 16717448d6SSheetal Tigadolielse 17717448d6SSheetal Tigadoli$(error Error: File ${BOARD_CFG}.mk not found in plat/brcm/board/${PLAT}) 18717448d6SSheetal Tigadoliendif 19717448d6SSheetal Tigadoliendif 20717448d6SSheetal Tigadoli 21717448d6SSheetal Tigadoli# To compile with highest log level (VERBOSE) set value to 50 22717448d6SSheetal TigadoliLOG_LEVEL := 40 23717448d6SSheetal Tigadoli 24717448d6SSheetal Tigadoli# Use custom generic timer clock 25717448d6SSheetal Tigadoliifneq (${GENTIMER_ACTUAL_CLOCK},) 26717448d6SSheetal Tigadoli$(info Using GENTIMER_ACTUAL_CLOCK=$(GENTIMER_ACTUAL_CLOCK)) 27717448d6SSheetal TigadoliSYSCNT_FREQ := $(GENTIMER_ACTUAL_CLOCK) 28717448d6SSheetal Tigadoli$(eval $(call add_define,SYSCNT_FREQ)) 29717448d6SSheetal Tigadoliendif 30717448d6SSheetal Tigadoli 31*9a40c0fbSSheetal Tigadoli# Process ARM_BL31_IN_DRAM flag 32*9a40c0fbSSheetal Tigadoliifeq (${ARM_BL31_IN_DRAM},) 33*9a40c0fbSSheetal TigadoliARM_BL31_IN_DRAM := 0 34*9a40c0fbSSheetal Tigadoliendif 35*9a40c0fbSSheetal Tigadoli$(eval $(call assert_boolean,ARM_BL31_IN_DRAM)) 36*9a40c0fbSSheetal Tigadoli$(eval $(call add_define,ARM_BL31_IN_DRAM)) 37*9a40c0fbSSheetal Tigadoli 38717448d6SSheetal Tigadoliifeq (${STANDALONE_BL2},yes) 39717448d6SSheetal Tigadoli$(eval $(call add_define,MMU_DISABLED)) 40717448d6SSheetal Tigadoliendif 41717448d6SSheetal Tigadoli 42717448d6SSheetal Tigadoli# BL2 XIP from QSPI 43717448d6SSheetal TigadoliRUN_BL2_FROM_QSPI := 0 44717448d6SSheetal Tigadoliifeq (${RUN_BL2_FROM_QSPI},1) 45717448d6SSheetal Tigadoli$(eval $(call add_define,RUN_BL2_FROM_QSPI)) 46717448d6SSheetal Tigadoliendif 47717448d6SSheetal Tigadoli 48717448d6SSheetal Tigadoli# Use CRMU SRAM from iHOST 49717448d6SSheetal Tigadoliifneq (${USE_CRMU_SRAM},) 50717448d6SSheetal Tigadoli$(eval $(call add_define,USE_CRMU_SRAM)) 51717448d6SSheetal Tigadoliendif 52717448d6SSheetal Tigadoli 53717448d6SSheetal Tigadoli# On BRCM platforms, separate the code and read-only data sections to allow 54717448d6SSheetal Tigadoli# mapping the former as executable and the latter as execute-never. 55717448d6SSheetal TigadoliSEPARATE_CODE_AND_RODATA := 1 56717448d6SSheetal Tigadoli 57717448d6SSheetal Tigadoli# Use generic OID definition (tbbr_oid.h) 58717448d6SSheetal TigadoliUSE_TBBR_DEFS := 1 59717448d6SSheetal Tigadoli 60*9a40c0fbSSheetal TigadoliPLAT_INCLUDES += -Iplat/brcm/board/common \ 61*9a40c0fbSSheetal Tigadoli -Iinclude/drivers/brcm 62717448d6SSheetal Tigadoli 63717448d6SSheetal TigadoliPLAT_BL_COMMON_SOURCES += plat/brcm/common/brcm_common.c \ 64717448d6SSheetal Tigadoli plat/brcm/board/common/cmn_sec.c \ 65717448d6SSheetal Tigadoli plat/brcm/board/common/bcm_console.c \ 66717448d6SSheetal Tigadoli plat/brcm/board/common/plat_setup.c \ 67717448d6SSheetal Tigadoli plat/brcm/board/common/platform_common.c \ 68717448d6SSheetal Tigadoli drivers/arm/sp804/sp804_delay_timer.c \ 69717448d6SSheetal Tigadoli drivers/delay_timer/delay_timer.c \ 70717448d6SSheetal Tigadoli drivers/io/io_fip.c \ 71717448d6SSheetal Tigadoli drivers/io/io_memmap.c \ 72717448d6SSheetal Tigadoli drivers/io/io_storage.c \ 73717448d6SSheetal Tigadoli plat/brcm/common/brcm_io_storage.c \ 74717448d6SSheetal Tigadoli plat/brcm/board/common/err.c \ 75717448d6SSheetal Tigadoli drivers/arm/sp805/sp805.c 76717448d6SSheetal Tigadoli 77717448d6SSheetal TigadoliBL2_SOURCES += plat/brcm/common/brcm_bl2_mem_params_desc.c \ 78717448d6SSheetal Tigadoli plat/brcm/common/brcm_image_load.c \ 79717448d6SSheetal Tigadoli common/desc_image_load.c 80717448d6SSheetal Tigadoli 81717448d6SSheetal TigadoliBL2_SOURCES += plat/brcm/common/brcm_bl2_setup.c 82717448d6SSheetal Tigadoli 83*9a40c0fbSSheetal TigadoliBL31_SOURCES += plat/brcm/common/brcm_bl31_setup.c 84*9a40c0fbSSheetal Tigadoli 85*9a40c0fbSSheetal Tigadoli#M0 runtime firmware 86*9a40c0fbSSheetal Tigadoliifdef SCP_BL2 87*9a40c0fbSSheetal Tigadoli$(eval $(call add_define,NEED_SCP_BL2)) 88*9a40c0fbSSheetal TigadoliSCP_CFG_DIR=$(dir ${SCP_BL2}) 89*9a40c0fbSSheetal TigadoliPLAT_INCLUDES += -I${SCP_CFG_DIR} 90*9a40c0fbSSheetal Tigadoliendif 91*9a40c0fbSSheetal Tigadoli 92*9a40c0fbSSheetal Tigadoliifneq (${NEED_BL33},yes) 93*9a40c0fbSSheetal Tigadoli# If there is no BL33, BL31 will jump to this address. 94*9a40c0fbSSheetal Tigadoliifeq (${USE_DDR},yes) 95*9a40c0fbSSheetal TigadoliPRELOADED_BL33_BASE := 0x80000000 96*9a40c0fbSSheetal Tigadolielse 97*9a40c0fbSSheetal TigadoliPRELOADED_BL33_BASE := 0x74000000 98*9a40c0fbSSheetal Tigadoliendif 99*9a40c0fbSSheetal Tigadoliendif 100*9a40c0fbSSheetal Tigadoli 101717448d6SSheetal Tigadoli# Use translation tables library v1 by default 102717448d6SSheetal TigadoliARM_XLAT_TABLES_LIB_V1 := 1 103717448d6SSheetal Tigadoliifeq (${ARM_XLAT_TABLES_LIB_V1}, 1) 104717448d6SSheetal Tigadoli$(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1)) 105717448d6SSheetal Tigadoli$(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1)) 106717448d6SSheetal TigadoliPLAT_BL_COMMON_SOURCES += lib/xlat_tables/aarch64/xlat_tables.c \ 107717448d6SSheetal Tigadoli lib/xlat_tables/xlat_tables_common.c 108717448d6SSheetal Tigadoliendif 109