1717448d6SSheetal Tigadoli# 2717448d6SSheetal Tigadoli# Copyright (c) 2019-2020, Broadcom 3717448d6SSheetal Tigadoli# 4717448d6SSheetal Tigadoli# SPDX-License-Identifier: BSD-3-Clause 5717448d6SSheetal Tigadoli# 6717448d6SSheetal Tigadoli 7*f29d1e0cSSheetal Tigadoli# Set the toc_flags to 1 for 100% speed operation 8*f29d1e0cSSheetal Tigadoli# Set the toc_flags to 2 for 50% speed operation 9*f29d1e0cSSheetal Tigadoli# Set the toc_flags to 3 for 25% speed operation 10*f29d1e0cSSheetal Tigadoli# Set the toc_flags bit 3 to indicate ignore the fip in UEFI copy mode 11*f29d1e0cSSheetal TigadoliPLAT_TOC_FLAGS := 0x0 12*f29d1e0cSSheetal Tigadoli 13*f29d1e0cSSheetal Tigadoli# Set the IHOST_PLL_FREQ to, 14*f29d1e0cSSheetal Tigadoli# 1 for full speed 15*f29d1e0cSSheetal Tigadoli# 2 for 50% speed 16*f29d1e0cSSheetal Tigadoli# 3 for 25% speed 17*f29d1e0cSSheetal Tigadoli# 0 for bypass 18*f29d1e0cSSheetal Tigadoli$(eval $(call add_define_val,IHOST_PLL_FREQ,1)) 19*f29d1e0cSSheetal Tigadoli 20717448d6SSheetal Tigadoli# Enable workaround for ERRATA_A72_859971 21717448d6SSheetal TigadoliERRATA_A72_859971 := 1 22717448d6SSheetal Tigadoli 23717448d6SSheetal Tigadoli# Cache Coherency Interconnect Driver needed 24717448d6SSheetal TigadoliDRIVER_CC_ENABLE := 1 25717448d6SSheetal Tigadoli$(eval $(call add_define,DRIVER_CC_ENABLE)) 26717448d6SSheetal Tigadoli 279a40c0fbSSheetal Tigadoli# BL31 is in DRAM 289a40c0fbSSheetal TigadoliARM_BL31_IN_DRAM := 1 299a40c0fbSSheetal Tigadoli 30717448d6SSheetal TigadoliUSE_CRMU_SRAM := yes 31717448d6SSheetal Tigadoli 32*f29d1e0cSSheetal Tigadoli# Enable error logging by default for Stingray 33*f29d1e0cSSheetal TigadoliBCM_ELOG := yes 34*f29d1e0cSSheetal Tigadoli 35*f29d1e0cSSheetal Tigadoli# Enable FRU support by default for Stingray 36*f29d1e0cSSheetal Tigadoliifeq (${USE_FRU},) 37*f29d1e0cSSheetal TigadoliUSE_FRU := no 38*f29d1e0cSSheetal Tigadoliendif 39*f29d1e0cSSheetal Tigadoli 40717448d6SSheetal Tigadoli# Use single cluster 41717448d6SSheetal Tigadoliifeq (${USE_SINGLE_CLUSTER},yes) 42717448d6SSheetal Tigadoli$(info Using Single Cluster) 43717448d6SSheetal Tigadoli$(eval $(call add_define,USE_SINGLE_CLUSTER)) 44717448d6SSheetal Tigadoliendif 45717448d6SSheetal Tigadoli 46*f29d1e0cSSheetal Tigadoli# Use DDR 47*f29d1e0cSSheetal Tigadoliifeq (${USE_DDR},yes) 48*f29d1e0cSSheetal Tigadoli$(info Using DDR) 49*f29d1e0cSSheetal Tigadoli$(eval $(call add_define,USE_DDR)) 50*f29d1e0cSSheetal Tigadoliendif 51*f29d1e0cSSheetal Tigadoli 52717448d6SSheetal Tigadoliifeq (${BOARD_CFG},) 53717448d6SSheetal TigadoliBOARD_CFG := bcm958742k 54717448d6SSheetal Tigadoliendif 55717448d6SSheetal Tigadoli 56*f29d1e0cSSheetal Tigadoli# Use NAND 57*f29d1e0cSSheetal Tigadoliifeq (${USE_NAND},$(filter yes, ${USE_NAND})) 58*f29d1e0cSSheetal Tigadoli$(info Using NAND) 59*f29d1e0cSSheetal Tigadoli$(eval $(call add_define,USE_NAND)) 60*f29d1e0cSSheetal Tigadoliendif 61*f29d1e0cSSheetal Tigadoli 62*f29d1e0cSSheetal Tigadoli# Enable Broadcom error logging support 63*f29d1e0cSSheetal Tigadoliifeq (${BCM_ELOG},yes) 64*f29d1e0cSSheetal Tigadoli$(info Using BCM_ELOG) 65*f29d1e0cSSheetal Tigadoli$(eval $(call add_define,BCM_ELOG)) 66*f29d1e0cSSheetal Tigadoliendif 67*f29d1e0cSSheetal Tigadoli 689a40c0fbSSheetal Tigadoli# BL31 build for standalone mode 699a40c0fbSSheetal Tigadoliifeq (${STANDALONE_BL31},yes) 709a40c0fbSSheetal TigadoliRESET_TO_BL31 := 1 719a40c0fbSSheetal Tigadoli$(info Using RESET_TO_BL31) 729a40c0fbSSheetal Tigadoliendif 739a40c0fbSSheetal Tigadoli 74717448d6SSheetal Tigadoli# For testing purposes, use memsys stubs. Remove once memsys is fully tested. 75717448d6SSheetal TigadoliUSE_MEMSYS_STUBS := yes 76717448d6SSheetal Tigadoli 77717448d6SSheetal Tigadoli# Default, use BL1_RW area 78717448d6SSheetal Tigadoliifneq (${BL2_USE_BL1_RW},no) 79717448d6SSheetal Tigadoli$(eval $(call add_define,USE_BL1_RW)) 80717448d6SSheetal Tigadoliendif 81717448d6SSheetal Tigadoli 82717448d6SSheetal Tigadoli# Default soft reset is L3 83717448d6SSheetal Tigadoli$(eval $(call add_define,CONFIG_SOFT_RESET_L3)) 84717448d6SSheetal Tigadoli 85*f29d1e0cSSheetal Tigadoli# Enable Chip OTP driver 86*f29d1e0cSSheetal TigadoliDRIVER_OCOTP_ENABLE := 1 87*f29d1e0cSSheetal Tigadoli 88717448d6SSheetal Tigadoliinclude plat/brcm/board/common/board_common.mk 89717448d6SSheetal Tigadoli 90717448d6SSheetal TigadoliSOC_DIR := brcm/board/stingray 91717448d6SSheetal Tigadoli 92717448d6SSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/include/ \ 93717448d6SSheetal Tigadoli -Iinclude/plat/brcm/common/ \ 94717448d6SSheetal Tigadoli -Iplat/brcm/common/ 95717448d6SSheetal Tigadoli 96717448d6SSheetal TigadoliPLAT_BL_COMMON_SOURCES += lib/cpus/aarch64/cortex_a72.S \ 97717448d6SSheetal Tigadoli plat/${SOC_DIR}/aarch64/plat_helpers.S \ 98717448d6SSheetal Tigadoli drivers/ti/uart/aarch64/16550_console.S \ 999a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/tz_sec.c \ 1009a40c0fbSSheetal Tigadoli drivers/arm/tzc/tzc400.c \ 1019a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/topology.c 1029a40c0fbSSheetal Tigadoli 103*f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/${SOC_DIR}/driver/ihost_pll_config.c \ 104*f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/bl2_setup.c \ 105*f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/driver/swreg.c 106*f29d1e0cSSheetal Tigadoli 107*f29d1e0cSSheetal Tigadoli 108*f29d1e0cSSheetal Tigadoliifeq (${USE_DDR},yes) 109*f29d1e0cSSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/driver/ddr/soc/include 110*f29d1e0cSSheetal Tigadolielse 111*f29d1e0cSSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/driver/ext_sram_init 112*f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/${SOC_DIR}/driver/ext_sram_init/ext_sram_init.c 113*f29d1e0cSSheetal Tigadoliendif 1149a40c0fbSSheetal Tigadoli 1159a40c0fbSSheetal Tigadoli# Include GICv3 driver files 1169a40c0fbSSheetal Tigadoliinclude drivers/arm/gic/v3/gicv3.mk 1179a40c0fbSSheetal Tigadoli 1189a40c0fbSSheetal TigadoliBRCM_GIC_SOURCES := ${GICV3_SOURCES} \ 1199a40c0fbSSheetal Tigadoli plat/common/plat_gicv3.c \ 1209a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_gicv3.c 1219a40c0fbSSheetal Tigadoli 1229a40c0fbSSheetal TigadoliBL31_SOURCES += \ 1239a40c0fbSSheetal Tigadoli drivers/arm/ccn/ccn.c \ 1249a40c0fbSSheetal Tigadoli plat/brcm/board/common/timer_sync.c \ 1259a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_ccn.c \ 1269a40c0fbSSheetal Tigadoli plat/common/plat_psci_common.c \ 1279a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/driver/ihost_pll_config.c \ 1289a40c0fbSSheetal Tigadoli ${BRCM_GIC_SOURCES} 1299a40c0fbSSheetal Tigadoli 1309a40c0fbSSheetal Tigadoliifdef SCP_BL2 1319a40c0fbSSheetal TigadoliPLAT_INCLUDES += -Iplat/brcm/common/ 1329a40c0fbSSheetal Tigadoli 133*f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/brcm/common/brcm_mhu.c \ 134*f29d1e0cSSheetal Tigadoli plat/brcm/common/brcm_scpi.c \ 135*f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/scp_utils.c \ 136*f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/scp_cmd.c \ 137*f29d1e0cSSheetal Tigadoli drivers/brcm/scp.c 138*f29d1e0cSSheetal Tigadoli 1399a40c0fbSSheetal TigadoliBL31_SOURCES += plat/brcm/common/brcm_mhu.c \ 1409a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_scpi.c \ 1419a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/brcm_pm_ops.c 1429a40c0fbSSheetal Tigadolielse 1439a40c0fbSSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/ihost_pm.c \ 1449a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/pm.c 1459a40c0fbSSheetal Tigadoliendif 1469a40c0fbSSheetal Tigadoli 147*f29d1e0cSSheetal Tigadoliifeq (${ELOG_SUPPORT},1) 148*f29d1e0cSSheetal Tigadoliifeq (${ELOG_STORE_MEDIA},DDR) 149*f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/brcm/board/common/bcm_elog_ddr.c 150*f29d1e0cSSheetal Tigadoliendif 151*f29d1e0cSSheetal Tigadoliendif 152*f29d1e0cSSheetal Tigadoli 1539a40c0fbSSheetal Tigadoli# Do not execute the startup code on warm reset. 1549a40c0fbSSheetal TigadoliPROGRAMMABLE_RESET_ADDRESS := 1 155*f29d1e0cSSheetal Tigadoli 156*f29d1e0cSSheetal Tigadoli# Nitro FW, config and Crash log uses secure DDR memory 157*f29d1e0cSSheetal Tigadoli# Inaddition to above, Nitro master and slave is also secure 158*f29d1e0cSSheetal Tigadoliifneq ($(NITRO_SECURE_ACCESS),) 159*f29d1e0cSSheetal Tigadoli$(eval $(call add_define,NITRO_SECURE_ACCESS)) 160*f29d1e0cSSheetal Tigadoli$(eval $(call add_define,DDR_NITRO_SECURE_REGION_START)) 161*f29d1e0cSSheetal Tigadoli$(eval $(call add_define,DDR_NITRO_SECURE_REGION_END)) 162*f29d1e0cSSheetal Tigadoliendif 163