1717448d6SSheetal Tigadoli# 2717448d6SSheetal Tigadoli# Copyright (c) 2019-2020, Broadcom 3717448d6SSheetal Tigadoli# 4717448d6SSheetal Tigadoli# SPDX-License-Identifier: BSD-3-Clause 5717448d6SSheetal Tigadoli# 6717448d6SSheetal Tigadoli 7f29d1e0cSSheetal Tigadoli# Set the toc_flags to 1 for 100% speed operation 8f29d1e0cSSheetal Tigadoli# Set the toc_flags to 2 for 50% speed operation 9f29d1e0cSSheetal Tigadoli# Set the toc_flags to 3 for 25% speed operation 10f29d1e0cSSheetal Tigadoli# Set the toc_flags bit 3 to indicate ignore the fip in UEFI copy mode 11f29d1e0cSSheetal TigadoliPLAT_TOC_FLAGS := 0x0 12f29d1e0cSSheetal Tigadoli 13f29d1e0cSSheetal Tigadoli# Set the IHOST_PLL_FREQ to, 14f29d1e0cSSheetal Tigadoli# 1 for full speed 15f29d1e0cSSheetal Tigadoli# 2 for 50% speed 16f29d1e0cSSheetal Tigadoli# 3 for 25% speed 17f29d1e0cSSheetal Tigadoli# 0 for bypass 18f29d1e0cSSheetal Tigadoli$(eval $(call add_define_val,IHOST_PLL_FREQ,1)) 19f29d1e0cSSheetal 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 30*3942d3a8SSheetal Tigadoliifneq (${USE_EMULATOR},yes) 31*3942d3a8SSheetal TigadoliSTINGRAY_EMULATION_SETUP := 0 32*3942d3a8SSheetal Tigadoliifeq (${FASTBOOT_TYPE},) 33*3942d3a8SSheetal Tigadolioverride FASTBOOT_TYPE := 0 34*3942d3a8SSheetal Tigadoliendif 35*3942d3a8SSheetal TigadoliUSE_PAXB := yes 36*3942d3a8SSheetal TigadoliUSE_PAXC := yes 37*3942d3a8SSheetal TigadoliUSE_CHIMP := yes 38*3942d3a8SSheetal Tigadoliendif 39*3942d3a8SSheetal Tigadoli 40717448d6SSheetal TigadoliUSE_CRMU_SRAM := yes 41717448d6SSheetal Tigadoli 42*3942d3a8SSheetal Tigadoli# Disable FS4 clocks - they can be reenabled when needed by linux 43*3942d3a8SSheetal TigadoliFS4_DISABLE_CLOCK := yes 44*3942d3a8SSheetal Tigadoli 45f29d1e0cSSheetal Tigadoli# Enable error logging by default for Stingray 46f29d1e0cSSheetal TigadoliBCM_ELOG := yes 47f29d1e0cSSheetal Tigadoli 48f29d1e0cSSheetal Tigadoli# Enable FRU support by default for Stingray 49f29d1e0cSSheetal Tigadoliifeq (${USE_FRU},) 50f29d1e0cSSheetal TigadoliUSE_FRU := no 51f29d1e0cSSheetal Tigadoliendif 52f29d1e0cSSheetal Tigadoli 53717448d6SSheetal Tigadoli# Use single cluster 54717448d6SSheetal Tigadoliifeq (${USE_SINGLE_CLUSTER},yes) 55717448d6SSheetal Tigadoli$(info Using Single Cluster) 56717448d6SSheetal Tigadoli$(eval $(call add_define,USE_SINGLE_CLUSTER)) 57717448d6SSheetal Tigadoliendif 58717448d6SSheetal Tigadoli 59f29d1e0cSSheetal Tigadoli# Use DDR 60f29d1e0cSSheetal Tigadoliifeq (${USE_DDR},yes) 61f29d1e0cSSheetal Tigadoli$(info Using DDR) 62f29d1e0cSSheetal Tigadoli$(eval $(call add_define,USE_DDR)) 63f29d1e0cSSheetal Tigadoliendif 64f29d1e0cSSheetal Tigadoli 65717448d6SSheetal Tigadoliifeq (${BOARD_CFG},) 66717448d6SSheetal TigadoliBOARD_CFG := bcm958742k 67717448d6SSheetal Tigadoliendif 68717448d6SSheetal Tigadoli 69*3942d3a8SSheetal Tigadoli# Use PAXB 70*3942d3a8SSheetal Tigadoliifeq (${USE_PAXB},yes) 71*3942d3a8SSheetal Tigadoli$(info Using PAXB) 72*3942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_PAXB)) 73*3942d3a8SSheetal Tigadoliendif 74*3942d3a8SSheetal Tigadoli 75*3942d3a8SSheetal Tigadoli# Use FS4 76*3942d3a8SSheetal Tigadoliifeq (${USE_FS4},yes) 77*3942d3a8SSheetal Tigadoli$(info Using FS4) 78*3942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_FS4)) 79*3942d3a8SSheetal Tigadoliendif 80*3942d3a8SSheetal Tigadoli 81*3942d3a8SSheetal Tigadoli# Use FS6 82*3942d3a8SSheetal Tigadoliifeq (${USE_FS6},yes) 83*3942d3a8SSheetal Tigadoli$(info Using FS6) 84*3942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_FS6)) 85*3942d3a8SSheetal Tigadoliendif 86*3942d3a8SSheetal Tigadoli 87*3942d3a8SSheetal Tigadoli# Disable FS4 clock 88*3942d3a8SSheetal Tigadoliifeq (${FS4_DISABLE_CLOCK},yes) 89*3942d3a8SSheetal Tigadoli$(info Using FS4_DISABLE_CLOCK) 90*3942d3a8SSheetal Tigadoli$(eval $(call add_define,FS4_DISABLE_CLOCK)) 91*3942d3a8SSheetal Tigadoliendif 92*3942d3a8SSheetal Tigadoli 93*3942d3a8SSheetal Tigadoliifneq (${NCSI_IO_DRIVE_STRENGTH_MA},) 94*3942d3a8SSheetal Tigadoli$(info Using NCSI_IO_DRIVE_STRENGTH_MA) 95*3942d3a8SSheetal Tigadoli$(eval $(call add_define,NCSI_IO_DRIVE_STRENGTH_MA)) 96*3942d3a8SSheetal Tigadoliendif 97*3942d3a8SSheetal Tigadoli 98f29d1e0cSSheetal Tigadoli# Use NAND 99f29d1e0cSSheetal Tigadoliifeq (${USE_NAND},$(filter yes, ${USE_NAND})) 100f29d1e0cSSheetal Tigadoli$(info Using NAND) 101f29d1e0cSSheetal Tigadoli$(eval $(call add_define,USE_NAND)) 102f29d1e0cSSheetal Tigadoliendif 103f29d1e0cSSheetal Tigadoli 104f29d1e0cSSheetal Tigadoli# Enable Broadcom error logging support 105f29d1e0cSSheetal Tigadoliifeq (${BCM_ELOG},yes) 106f29d1e0cSSheetal Tigadoli$(info Using BCM_ELOG) 107f29d1e0cSSheetal Tigadoli$(eval $(call add_define,BCM_ELOG)) 108f29d1e0cSSheetal Tigadoliendif 109f29d1e0cSSheetal Tigadoli 1109a40c0fbSSheetal Tigadoli# BL31 build for standalone mode 1119a40c0fbSSheetal Tigadoliifeq (${STANDALONE_BL31},yes) 1129a40c0fbSSheetal TigadoliRESET_TO_BL31 := 1 1139a40c0fbSSheetal Tigadoli$(info Using RESET_TO_BL31) 1149a40c0fbSSheetal Tigadoliendif 1159a40c0fbSSheetal Tigadoli 116*3942d3a8SSheetal Tigadoli# BL31 force full frequency for all CPUs 117*3942d3a8SSheetal Tigadoliifeq (${BL31_FORCE_CPU_FULL_FREQ},yes) 118*3942d3a8SSheetal Tigadoli$(info Using BL31_FORCE_CPU_FULL_FREQ) 119*3942d3a8SSheetal Tigadoli$(eval $(call add_define,BL31_FORCE_CPU_FULL_FREQ)) 120*3942d3a8SSheetal Tigadoliendif 121*3942d3a8SSheetal Tigadoli 122*3942d3a8SSheetal Tigadoli# Enable non-secure accesses to CCN registers 123*3942d3a8SSheetal Tigadoliifeq (${BL31_CCN_NONSECURE},yes) 124*3942d3a8SSheetal Tigadoli$(info Using BL31_CCN_NONSECURE) 125*3942d3a8SSheetal Tigadoli$(eval $(call add_define,BL31_CCN_NONSECURE)) 126*3942d3a8SSheetal Tigadoliendif 127*3942d3a8SSheetal Tigadoli 128*3942d3a8SSheetal Tigadoli# Use ChiMP 129*3942d3a8SSheetal Tigadoliifeq (${USE_CHIMP},yes) 130*3942d3a8SSheetal Tigadoli$(info Using ChiMP) 131*3942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_CHIMP)) 132*3942d3a8SSheetal Tigadoliendif 133*3942d3a8SSheetal Tigadoli 134*3942d3a8SSheetal Tigadoli# Use PAXC 135*3942d3a8SSheetal Tigadoliifeq (${USE_PAXC},yes) 136*3942d3a8SSheetal Tigadoli$(info Using PAXC) 137*3942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_PAXC)) 138*3942d3a8SSheetal Tigadoliifeq (${CHIMPFW_USE_SIDELOAD},yes) 139*3942d3a8SSheetal Tigadoli$(info Using ChiMP FW sideload) 140*3942d3a8SSheetal Tigadoli$(eval $(call add_define,CHIMPFW_USE_SIDELOAD)) 141*3942d3a8SSheetal Tigadoliendif 142*3942d3a8SSheetal Tigadoli$(eval $(call add_define,FASTBOOT_TYPE)) 143*3942d3a8SSheetal Tigadoli$(eval $(call add_define,CHIMP_FB1_ENTRY)) 144*3942d3a8SSheetal Tigadoliendif 145*3942d3a8SSheetal Tigadoli 146*3942d3a8SSheetal Tigadoliifeq (${DEFAULT_SWREG_CONFIG}, 1) 147*3942d3a8SSheetal Tigadoli$(eval $(call add_define,DEFAULT_SWREG_CONFIG)) 148*3942d3a8SSheetal Tigadoliendif 149*3942d3a8SSheetal Tigadoli 150*3942d3a8SSheetal Tigadoliifeq (${CHIMP_ALWAYS_NEEDS_QSPI},yes) 151*3942d3a8SSheetal Tigadoli$(eval $(call add_define,CHIMP_ALWAYS_NEEDS_QSPI)) 152*3942d3a8SSheetal Tigadoliendif 153*3942d3a8SSheetal Tigadoli 154717448d6SSheetal Tigadoli# For testing purposes, use memsys stubs. Remove once memsys is fully tested. 155717448d6SSheetal TigadoliUSE_MEMSYS_STUBS := yes 156717448d6SSheetal Tigadoli 157717448d6SSheetal Tigadoli# Default, use BL1_RW area 158717448d6SSheetal Tigadoliifneq (${BL2_USE_BL1_RW},no) 159717448d6SSheetal Tigadoli$(eval $(call add_define,USE_BL1_RW)) 160717448d6SSheetal Tigadoliendif 161717448d6SSheetal Tigadoli 162717448d6SSheetal Tigadoli# Default soft reset is L3 163717448d6SSheetal Tigadoli$(eval $(call add_define,CONFIG_SOFT_RESET_L3)) 164717448d6SSheetal Tigadoli 165f29d1e0cSSheetal Tigadoli# Enable Chip OTP driver 166f29d1e0cSSheetal TigadoliDRIVER_OCOTP_ENABLE := 1 167f29d1e0cSSheetal Tigadoli 168717448d6SSheetal Tigadoliinclude plat/brcm/board/common/board_common.mk 169717448d6SSheetal Tigadoli 170717448d6SSheetal TigadoliSOC_DIR := brcm/board/stingray 171717448d6SSheetal Tigadoli 172717448d6SSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/include/ \ 173717448d6SSheetal Tigadoli -Iinclude/plat/brcm/common/ \ 174717448d6SSheetal Tigadoli -Iplat/brcm/common/ 175717448d6SSheetal Tigadoli 176717448d6SSheetal TigadoliPLAT_BL_COMMON_SOURCES += lib/cpus/aarch64/cortex_a72.S \ 177717448d6SSheetal Tigadoli plat/${SOC_DIR}/aarch64/plat_helpers.S \ 178717448d6SSheetal Tigadoli drivers/ti/uart/aarch64/16550_console.S \ 1799a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/tz_sec.c \ 1809a40c0fbSSheetal Tigadoli drivers/arm/tzc/tzc400.c \ 1819a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/topology.c 1829a40c0fbSSheetal Tigadoli 183*3942d3a8SSheetal Tigadoliifeq (${USE_CHIMP},yes) 184*3942d3a8SSheetal TigadoliPLAT_BL_COMMON_SOURCES += drivers/brcm/chimp.c 185*3942d3a8SSheetal Tigadoliendif 186*3942d3a8SSheetal Tigadoli 187f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/${SOC_DIR}/driver/ihost_pll_config.c \ 188f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/bl2_setup.c \ 189f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/driver/swreg.c 190f29d1e0cSSheetal Tigadoli 191f29d1e0cSSheetal Tigadoli 192f29d1e0cSSheetal Tigadoliifeq (${USE_DDR},yes) 193f29d1e0cSSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/driver/ddr/soc/include 194f29d1e0cSSheetal Tigadolielse 195f29d1e0cSSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/driver/ext_sram_init 196f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/${SOC_DIR}/driver/ext_sram_init/ext_sram_init.c 197f29d1e0cSSheetal Tigadoliendif 1989a40c0fbSSheetal Tigadoli 1999a40c0fbSSheetal Tigadoli# Include GICv3 driver files 2009a40c0fbSSheetal Tigadoliinclude drivers/arm/gic/v3/gicv3.mk 2019a40c0fbSSheetal Tigadoli 2029a40c0fbSSheetal TigadoliBRCM_GIC_SOURCES := ${GICV3_SOURCES} \ 2039a40c0fbSSheetal Tigadoli plat/common/plat_gicv3.c \ 2049a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_gicv3.c 2059a40c0fbSSheetal Tigadoli 2069a40c0fbSSheetal TigadoliBL31_SOURCES += \ 2079a40c0fbSSheetal Tigadoli drivers/arm/ccn/ccn.c \ 2089a40c0fbSSheetal Tigadoli plat/brcm/board/common/timer_sync.c \ 2099a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_ccn.c \ 2109a40c0fbSSheetal Tigadoli plat/common/plat_psci_common.c \ 2119a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/driver/ihost_pll_config.c \ 212*3942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/bl31_setup.c \ 213*3942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/fsx.c \ 214*3942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/iommu.c \ 215*3942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/sdio.c \ 2169a40c0fbSSheetal Tigadoli ${BRCM_GIC_SOURCES} 2179a40c0fbSSheetal Tigadoli 218*3942d3a8SSheetal Tigadoliifneq (${NCSI_IO_DRIVE_STRENGTH_MA},) 219*3942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/ncsi.c 220*3942d3a8SSheetal Tigadoliendif 221*3942d3a8SSheetal Tigadoli 222*3942d3a8SSheetal Tigadoliifeq (${USE_PAXB},yes) 223*3942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/paxb.c 224*3942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/sr_paxb_phy.c 225*3942d3a8SSheetal Tigadoliendif 226*3942d3a8SSheetal Tigadoli 227*3942d3a8SSheetal Tigadoliifeq (${USE_PAXC},yes) 228*3942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/paxc.c 229*3942d3a8SSheetal Tigadoliendif 230*3942d3a8SSheetal Tigadoli 2319a40c0fbSSheetal Tigadoliifdef SCP_BL2 2329a40c0fbSSheetal TigadoliPLAT_INCLUDES += -Iplat/brcm/common/ 2339a40c0fbSSheetal Tigadoli 234f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/brcm/common/brcm_mhu.c \ 235f29d1e0cSSheetal Tigadoli plat/brcm/common/brcm_scpi.c \ 236f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/scp_utils.c \ 237f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/scp_cmd.c \ 238f29d1e0cSSheetal Tigadoli drivers/brcm/scp.c 239f29d1e0cSSheetal Tigadoli 2409a40c0fbSSheetal TigadoliBL31_SOURCES += plat/brcm/common/brcm_mhu.c \ 2419a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_scpi.c \ 2429a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/brcm_pm_ops.c 2439a40c0fbSSheetal Tigadolielse 2449a40c0fbSSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/ihost_pm.c \ 2459a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/pm.c 2469a40c0fbSSheetal Tigadoliendif 2479a40c0fbSSheetal Tigadoli 248f29d1e0cSSheetal Tigadoliifeq (${ELOG_SUPPORT},1) 249f29d1e0cSSheetal Tigadoliifeq (${ELOG_STORE_MEDIA},DDR) 250f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/brcm/board/common/bcm_elog_ddr.c 251f29d1e0cSSheetal Tigadoliendif 252f29d1e0cSSheetal Tigadoliendif 253f29d1e0cSSheetal Tigadoli 254*3942d3a8SSheetal Tigadoliifeq (${BL31_BOOT_PRELOADED_SCP}, 1) 255*3942d3a8SSheetal Tigadoliifdef SCP_BL2 256*3942d3a8SSheetal TigadoliSCP_CFG_DIR=$(dir ${SCP_BL2}) 257*3942d3a8SSheetal TigadoliPLAT_INCLUDES += -I${SCP_CFG_DIR} 258*3942d3a8SSheetal Tigadoliendif 259*3942d3a8SSheetal TigadoliPLAT_INCLUDES += -Iplat/brcm/common/ 260*3942d3a8SSheetal Tigadoli 261*3942d3a8SSheetal Tigadoli# By default use OPTEE Assigned memory 262*3942d3a8SSheetal TigadoliPRELOADED_SCP_BASE ?= 0x8E000000 263*3942d3a8SSheetal TigadoliPRELOADED_SCP_SIZE ?= 0x10000 264*3942d3a8SSheetal Tigadoli$(eval $(call add_define,PRELOADED_SCP_BASE)) 265*3942d3a8SSheetal Tigadoli$(eval $(call add_define,PRELOADED_SCP_SIZE)) 266*3942d3a8SSheetal Tigadoli$(eval $(call add_define,BL31_BOOT_PRELOADED_SCP)) 267*3942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/scp_utils.c \ 268*3942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/scp_cmd.c \ 269*3942d3a8SSheetal Tigadoli drivers/brcm/scp.c 270*3942d3a8SSheetal Tigadoliendif 271*3942d3a8SSheetal Tigadoli 2729a40c0fbSSheetal Tigadoli# Do not execute the startup code on warm reset. 2739a40c0fbSSheetal TigadoliPROGRAMMABLE_RESET_ADDRESS := 1 274f29d1e0cSSheetal Tigadoli 275f29d1e0cSSheetal Tigadoli# Nitro FW, config and Crash log uses secure DDR memory 276f29d1e0cSSheetal Tigadoli# Inaddition to above, Nitro master and slave is also secure 277f29d1e0cSSheetal Tigadoliifneq ($(NITRO_SECURE_ACCESS),) 278f29d1e0cSSheetal Tigadoli$(eval $(call add_define,NITRO_SECURE_ACCESS)) 279f29d1e0cSSheetal Tigadoli$(eval $(call add_define,DDR_NITRO_SECURE_REGION_START)) 280f29d1e0cSSheetal Tigadoli$(eval $(call add_define,DDR_NITRO_SECURE_REGION_END)) 281f29d1e0cSSheetal Tigadoliendif 282