1717448d6SSheetal Tigadoli# 2441a065aSBharat Gooty# Copyright (c) 2019-2021, 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 27bffde63dSSheetal Tigadoli# Enable to erase eMMC 28bffde63dSSheetal TigadoliINCLUDE_EMMC_DRIVER_ERASE_CODE := 0 29bffde63dSSheetal Tigadoli 30bffde63dSSheetal Tigadoliifeq (${INCLUDE_EMMC_DRIVER_ERASE_CODE},1) 31bffde63dSSheetal Tigadoli$(eval $(call add_define,INCLUDE_EMMC_DRIVER_ERASE_CODE)) 32bffde63dSSheetal Tigadoliendif 33bffde63dSSheetal Tigadoli 349a40c0fbSSheetal Tigadoli# BL31 is in DRAM 359a40c0fbSSheetal TigadoliARM_BL31_IN_DRAM := 1 369a40c0fbSSheetal Tigadoli 373942d3a8SSheetal Tigadoliifneq (${USE_EMULATOR},yes) 383942d3a8SSheetal TigadoliSTINGRAY_EMULATION_SETUP := 0 393942d3a8SSheetal Tigadoliifeq (${FASTBOOT_TYPE},) 403942d3a8SSheetal Tigadolioverride FASTBOOT_TYPE := 0 413942d3a8SSheetal Tigadoliendif 423942d3a8SSheetal TigadoliUSE_PAXB := yes 433942d3a8SSheetal TigadoliUSE_PAXC := yes 443942d3a8SSheetal TigadoliUSE_CHIMP := yes 453942d3a8SSheetal Tigadoliendif 463942d3a8SSheetal Tigadoli 47717448d6SSheetal TigadoliUSE_CRMU_SRAM := yes 48717448d6SSheetal Tigadoli 493942d3a8SSheetal Tigadoli# Disable FS4 clocks - they can be reenabled when needed by linux 503942d3a8SSheetal TigadoliFS4_DISABLE_CLOCK := yes 513942d3a8SSheetal Tigadoli 52f29d1e0cSSheetal Tigadoli# Enable error logging by default for Stingray 53f29d1e0cSSheetal TigadoliBCM_ELOG := yes 54f29d1e0cSSheetal Tigadoli 55f29d1e0cSSheetal Tigadoli# Enable FRU support by default for Stingray 56f29d1e0cSSheetal Tigadoliifeq (${USE_FRU},) 57f29d1e0cSSheetal TigadoliUSE_FRU := no 58f29d1e0cSSheetal Tigadoliendif 59f29d1e0cSSheetal Tigadoli 60717448d6SSheetal Tigadoli# Use single cluster 61717448d6SSheetal Tigadoliifeq (${USE_SINGLE_CLUSTER},yes) 62717448d6SSheetal Tigadoli$(info Using Single Cluster) 63717448d6SSheetal Tigadoli$(eval $(call add_define,USE_SINGLE_CLUSTER)) 64717448d6SSheetal Tigadoliendif 65717448d6SSheetal Tigadoli 66f29d1e0cSSheetal Tigadoli# Use DDR 67f29d1e0cSSheetal Tigadoliifeq (${USE_DDR},yes) 68f29d1e0cSSheetal Tigadoli$(info Using DDR) 69f29d1e0cSSheetal Tigadoli$(eval $(call add_define,USE_DDR)) 70f29d1e0cSSheetal Tigadoliendif 71f29d1e0cSSheetal Tigadoli 72717448d6SSheetal Tigadoliifeq (${BOARD_CFG},) 73a39493cbSMax ShvetsovBOARD_CFG := bcm958742t 74717448d6SSheetal Tigadoliendif 75717448d6SSheetal Tigadoli 76682fe370SBharat Gooty# Use USB 77682fe370SBharat Gootyifeq (${USE_USB},yes) 78682fe370SBharat Gooty$(info Using USB) 79682fe370SBharat Gooty$(eval $(call add_define,USE_USB)) 80682fe370SBharat Gootyendif 81682fe370SBharat Gooty 823942d3a8SSheetal Tigadoli# Use PAXB 833942d3a8SSheetal Tigadoliifeq (${USE_PAXB},yes) 843942d3a8SSheetal Tigadoli$(info Using PAXB) 853942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_PAXB)) 863942d3a8SSheetal Tigadoliendif 873942d3a8SSheetal Tigadoli 883942d3a8SSheetal Tigadoli# Use FS4 893942d3a8SSheetal Tigadoliifeq (${USE_FS4},yes) 903942d3a8SSheetal Tigadoli$(info Using FS4) 913942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_FS4)) 923942d3a8SSheetal Tigadoliendif 933942d3a8SSheetal Tigadoli 943942d3a8SSheetal Tigadoli# Use FS6 953942d3a8SSheetal Tigadoliifeq (${USE_FS6},yes) 963942d3a8SSheetal Tigadoli$(info Using FS6) 973942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_FS6)) 983942d3a8SSheetal Tigadoliendif 993942d3a8SSheetal Tigadoli 1003942d3a8SSheetal Tigadoli# Disable FS4 clock 1013942d3a8SSheetal Tigadoliifeq (${FS4_DISABLE_CLOCK},yes) 1023942d3a8SSheetal Tigadoli$(info Using FS4_DISABLE_CLOCK) 1033942d3a8SSheetal Tigadoli$(eval $(call add_define,FS4_DISABLE_CLOCK)) 1043942d3a8SSheetal Tigadoliendif 1053942d3a8SSheetal Tigadoli 1063942d3a8SSheetal Tigadoliifneq (${NCSI_IO_DRIVE_STRENGTH_MA},) 1073942d3a8SSheetal Tigadoli$(info Using NCSI_IO_DRIVE_STRENGTH_MA) 1083942d3a8SSheetal Tigadoli$(eval $(call add_define,NCSI_IO_DRIVE_STRENGTH_MA)) 1093942d3a8SSheetal Tigadoliendif 1103942d3a8SSheetal Tigadoli 111f29d1e0cSSheetal Tigadoli# Use NAND 112f29d1e0cSSheetal Tigadoliifeq (${USE_NAND},$(filter yes, ${USE_NAND})) 113f29d1e0cSSheetal Tigadoli$(info Using NAND) 114f29d1e0cSSheetal Tigadoli$(eval $(call add_define,USE_NAND)) 115f29d1e0cSSheetal Tigadoliendif 116f29d1e0cSSheetal Tigadoli 117f29d1e0cSSheetal Tigadoli# Enable Broadcom error logging support 118f29d1e0cSSheetal Tigadoliifeq (${BCM_ELOG},yes) 119f29d1e0cSSheetal Tigadoli$(info Using BCM_ELOG) 120f29d1e0cSSheetal Tigadoli$(eval $(call add_define,BCM_ELOG)) 121f29d1e0cSSheetal Tigadoliendif 122f29d1e0cSSheetal Tigadoli 1239a40c0fbSSheetal Tigadoli# BL31 build for standalone mode 1249a40c0fbSSheetal Tigadoliifeq (${STANDALONE_BL31},yes) 1259a40c0fbSSheetal TigadoliRESET_TO_BL31 := 1 1269a40c0fbSSheetal Tigadoli$(info Using RESET_TO_BL31) 1279a40c0fbSSheetal Tigadoliendif 1289a40c0fbSSheetal Tigadoli 1293942d3a8SSheetal Tigadoli# BL31 force full frequency for all CPUs 1303942d3a8SSheetal Tigadoliifeq (${BL31_FORCE_CPU_FULL_FREQ},yes) 1313942d3a8SSheetal Tigadoli$(info Using BL31_FORCE_CPU_FULL_FREQ) 1323942d3a8SSheetal Tigadoli$(eval $(call add_define,BL31_FORCE_CPU_FULL_FREQ)) 1333942d3a8SSheetal Tigadoliendif 1343942d3a8SSheetal Tigadoli 1353942d3a8SSheetal Tigadoli# Enable non-secure accesses to CCN registers 1363942d3a8SSheetal Tigadoliifeq (${BL31_CCN_NONSECURE},yes) 1373942d3a8SSheetal Tigadoli$(info Using BL31_CCN_NONSECURE) 1383942d3a8SSheetal Tigadoli$(eval $(call add_define,BL31_CCN_NONSECURE)) 1393942d3a8SSheetal Tigadoliendif 1403942d3a8SSheetal Tigadoli 1413942d3a8SSheetal Tigadoli# Use ChiMP 1423942d3a8SSheetal Tigadoliifeq (${USE_CHIMP},yes) 1433942d3a8SSheetal Tigadoli$(info Using ChiMP) 1443942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_CHIMP)) 1453942d3a8SSheetal Tigadoliendif 1463942d3a8SSheetal Tigadoli 1473942d3a8SSheetal Tigadoli# Use PAXC 1483942d3a8SSheetal Tigadoliifeq (${USE_PAXC},yes) 1493942d3a8SSheetal Tigadoli$(info Using PAXC) 1503942d3a8SSheetal Tigadoli$(eval $(call add_define,USE_PAXC)) 1513942d3a8SSheetal Tigadoliifeq (${CHIMPFW_USE_SIDELOAD},yes) 1523942d3a8SSheetal Tigadoli$(info Using ChiMP FW sideload) 1533942d3a8SSheetal Tigadoli$(eval $(call add_define,CHIMPFW_USE_SIDELOAD)) 1543942d3a8SSheetal Tigadoliendif 1553942d3a8SSheetal Tigadoli$(eval $(call add_define,FASTBOOT_TYPE)) 1563942d3a8SSheetal Tigadoli$(eval $(call add_define,CHIMP_FB1_ENTRY)) 1573942d3a8SSheetal Tigadoliendif 1583942d3a8SSheetal Tigadoli 1593942d3a8SSheetal Tigadoliifeq (${DEFAULT_SWREG_CONFIG}, 1) 1603942d3a8SSheetal Tigadoli$(eval $(call add_define,DEFAULT_SWREG_CONFIG)) 1613942d3a8SSheetal Tigadoliendif 1623942d3a8SSheetal Tigadoli 1633942d3a8SSheetal Tigadoliifeq (${CHIMP_ALWAYS_NEEDS_QSPI},yes) 1643942d3a8SSheetal Tigadoli$(eval $(call add_define,CHIMP_ALWAYS_NEEDS_QSPI)) 1653942d3a8SSheetal Tigadoliendif 1663942d3a8SSheetal Tigadoli 167717448d6SSheetal Tigadoli# For testing purposes, use memsys stubs. Remove once memsys is fully tested. 168717448d6SSheetal TigadoliUSE_MEMSYS_STUBS := yes 169717448d6SSheetal Tigadoli 170717448d6SSheetal Tigadoli# Default, use BL1_RW area 171717448d6SSheetal Tigadoliifneq (${BL2_USE_BL1_RW},no) 172717448d6SSheetal Tigadoli$(eval $(call add_define,USE_BL1_RW)) 173717448d6SSheetal Tigadoliendif 174717448d6SSheetal Tigadoli 175717448d6SSheetal Tigadoli# Default soft reset is L3 176717448d6SSheetal Tigadoli$(eval $(call add_define,CONFIG_SOFT_RESET_L3)) 177717448d6SSheetal Tigadoli 178f29d1e0cSSheetal Tigadoli# Enable Chip OTP driver 179f29d1e0cSSheetal TigadoliDRIVER_OCOTP_ENABLE := 1 180f29d1e0cSSheetal Tigadoli 181e3ee7b7dSSheetal Tigadoliifneq (${WARMBOOT_DDR_S3_SUPPORT},) 182e3ee7b7dSSheetal TigadoliDRIVER_SPI_ENABLE := 1 183e3ee7b7dSSheetal Tigadoliendif 184e3ee7b7dSSheetal Tigadoli 185717448d6SSheetal Tigadoliinclude plat/brcm/board/common/board_common.mk 186717448d6SSheetal Tigadoli 187717448d6SSheetal TigadoliSOC_DIR := brcm/board/stingray 188717448d6SSheetal Tigadoli 189717448d6SSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/include/ \ 190717448d6SSheetal Tigadoli -Iinclude/plat/brcm/common/ \ 191717448d6SSheetal Tigadoli -Iplat/brcm/common/ 192717448d6SSheetal Tigadoli 193717448d6SSheetal TigadoliPLAT_BL_COMMON_SOURCES += lib/cpus/aarch64/cortex_a72.S \ 194717448d6SSheetal Tigadoli plat/${SOC_DIR}/aarch64/plat_helpers.S \ 195717448d6SSheetal Tigadoli drivers/ti/uart/aarch64/16550_console.S \ 1969a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/tz_sec.c \ 1979a40c0fbSSheetal Tigadoli drivers/arm/tzc/tzc400.c \ 198bffde63dSSheetal Tigadoli plat/${SOC_DIR}/driver/plat_emmc.c \ 199441a065aSBharat Gooty plat/${SOC_DIR}/src/topology.c \ 200441a065aSBharat Gooty drivers/brcm/mdio/mdio.c 2019a40c0fbSSheetal Tigadoli 2023942d3a8SSheetal Tigadoliifeq (${USE_CHIMP},yes) 2033942d3a8SSheetal TigadoliPLAT_BL_COMMON_SOURCES += drivers/brcm/chimp.c 2043942d3a8SSheetal Tigadoliendif 2053942d3a8SSheetal Tigadoli 206682fe370SBharat Gootyifeq (${USE_USB},yes) 207682fe370SBharat GootyPLAT_BL_COMMON_SOURCES += plat/${SOC_DIR}/driver/usb.c \ 208682fe370SBharat Gooty plat/${SOC_DIR}/driver/usb_phy.c 209682fe370SBharat Gootyendif 210682fe370SBharat Gooty 211f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/${SOC_DIR}/driver/ihost_pll_config.c \ 212f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/bl2_setup.c \ 213*5d175106SJayanth Dodderi Chidanand plat/${SOC_DIR}/driver/swreg.c \ 214*5d175106SJayanth Dodderi Chidanand lib/cpus/aarch64/cpu_helpers.S 215f29d1e0cSSheetal Tigadoli 216f29d1e0cSSheetal Tigadoliifeq (${USE_DDR},yes) 217f29d1e0cSSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/driver/ddr/soc/include 218f29d1e0cSSheetal Tigadolielse 219f29d1e0cSSheetal TigadoliPLAT_INCLUDES += -Iplat/${SOC_DIR}/driver/ext_sram_init 220f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/${SOC_DIR}/driver/ext_sram_init/ext_sram_init.c 221f29d1e0cSSheetal Tigadoliendif 2229a40c0fbSSheetal Tigadoli 2239a40c0fbSSheetal Tigadoli# Include GICv3 driver files 2249a40c0fbSSheetal Tigadoliinclude drivers/arm/gic/v3/gicv3.mk 2259a40c0fbSSheetal Tigadoli 2269a40c0fbSSheetal TigadoliBRCM_GIC_SOURCES := ${GICV3_SOURCES} \ 2279a40c0fbSSheetal Tigadoli plat/common/plat_gicv3.c \ 2289a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_gicv3.c 2299a40c0fbSSheetal Tigadoli 2309a40c0fbSSheetal TigadoliBL31_SOURCES += \ 2319a40c0fbSSheetal Tigadoli drivers/arm/ccn/ccn.c \ 2329a40c0fbSSheetal Tigadoli plat/brcm/board/common/timer_sync.c \ 2339a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_ccn.c \ 2349a40c0fbSSheetal Tigadoli plat/common/plat_psci_common.c \ 2359a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/driver/ihost_pll_config.c \ 2363942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/bl31_setup.c \ 2373942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/fsx.c \ 2383942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/iommu.c \ 2393942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/sdio.c \ 2409a40c0fbSSheetal Tigadoli ${BRCM_GIC_SOURCES} 2419a40c0fbSSheetal Tigadoli 2423942d3a8SSheetal Tigadoliifneq (${NCSI_IO_DRIVE_STRENGTH_MA},) 2433942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/ncsi.c 2443942d3a8SSheetal Tigadoliendif 2453942d3a8SSheetal Tigadoli 2463942d3a8SSheetal Tigadoliifeq (${USE_PAXB},yes) 2473942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/paxb.c 2483942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/sr_paxb_phy.c 2493942d3a8SSheetal Tigadoliendif 2503942d3a8SSheetal Tigadoli 2513942d3a8SSheetal Tigadoliifeq (${USE_PAXC},yes) 2523942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/paxc.c 2533942d3a8SSheetal Tigadoliendif 2543942d3a8SSheetal Tigadoli 2559a40c0fbSSheetal Tigadoliifdef SCP_BL2 2569a40c0fbSSheetal TigadoliPLAT_INCLUDES += -Iplat/brcm/common/ 2579a40c0fbSSheetal Tigadoli 258f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/brcm/common/brcm_mhu.c \ 259f29d1e0cSSheetal Tigadoli plat/brcm/common/brcm_scpi.c \ 260f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/scp_utils.c \ 261f29d1e0cSSheetal Tigadoli plat/${SOC_DIR}/src/scp_cmd.c \ 262f29d1e0cSSheetal Tigadoli drivers/brcm/scp.c 263f29d1e0cSSheetal Tigadoli 2649a40c0fbSSheetal TigadoliBL31_SOURCES += plat/brcm/common/brcm_mhu.c \ 2659a40c0fbSSheetal Tigadoli plat/brcm/common/brcm_scpi.c \ 2669a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/brcm_pm_ops.c 2679a40c0fbSSheetal Tigadolielse 2689a40c0fbSSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/ihost_pm.c \ 2699a40c0fbSSheetal Tigadoli plat/${SOC_DIR}/src/pm.c 2709a40c0fbSSheetal Tigadoliendif 2719a40c0fbSSheetal Tigadoli 272f29d1e0cSSheetal Tigadoliifeq (${ELOG_SUPPORT},1) 273f29d1e0cSSheetal Tigadoliifeq (${ELOG_STORE_MEDIA},DDR) 274f29d1e0cSSheetal TigadoliBL2_SOURCES += plat/brcm/board/common/bcm_elog_ddr.c 275f29d1e0cSSheetal Tigadoliendif 276f29d1e0cSSheetal Tigadoliendif 277f29d1e0cSSheetal Tigadoli 2783942d3a8SSheetal Tigadoliifeq (${BL31_BOOT_PRELOADED_SCP}, 1) 2793942d3a8SSheetal Tigadoliifdef SCP_BL2 2803942d3a8SSheetal TigadoliSCP_CFG_DIR=$(dir ${SCP_BL2}) 2813942d3a8SSheetal TigadoliPLAT_INCLUDES += -I${SCP_CFG_DIR} 2823942d3a8SSheetal Tigadoliendif 2833942d3a8SSheetal TigadoliPLAT_INCLUDES += -Iplat/brcm/common/ 2843942d3a8SSheetal Tigadoli 2853942d3a8SSheetal Tigadoli# By default use OPTEE Assigned memory 2863942d3a8SSheetal TigadoliPRELOADED_SCP_BASE ?= 0x8E000000 2873942d3a8SSheetal TigadoliPRELOADED_SCP_SIZE ?= 0x10000 2883942d3a8SSheetal Tigadoli$(eval $(call add_define,PRELOADED_SCP_BASE)) 2893942d3a8SSheetal Tigadoli$(eval $(call add_define,PRELOADED_SCP_SIZE)) 2903942d3a8SSheetal Tigadoli$(eval $(call add_define,BL31_BOOT_PRELOADED_SCP)) 2913942d3a8SSheetal TigadoliBL31_SOURCES += plat/${SOC_DIR}/src/scp_utils.c \ 2923942d3a8SSheetal Tigadoli plat/${SOC_DIR}/src/scp_cmd.c \ 2933942d3a8SSheetal Tigadoli drivers/brcm/scp.c 2943942d3a8SSheetal Tigadoliendif 2953942d3a8SSheetal Tigadoli 2969a40c0fbSSheetal Tigadoli# Do not execute the startup code on warm reset. 2979a40c0fbSSheetal TigadoliPROGRAMMABLE_RESET_ADDRESS := 1 298f29d1e0cSSheetal Tigadoli 299f29d1e0cSSheetal Tigadoli# Nitro FW, config and Crash log uses secure DDR memory 300f29d1e0cSSheetal Tigadoli# Inaddition to above, Nitro master and slave is also secure 301f29d1e0cSSheetal Tigadoliifneq ($(NITRO_SECURE_ACCESS),) 302f29d1e0cSSheetal Tigadoli$(eval $(call add_define,NITRO_SECURE_ACCESS)) 303f29d1e0cSSheetal Tigadoli$(eval $(call add_define,DDR_NITRO_SECURE_REGION_START)) 304f29d1e0cSSheetal Tigadoli$(eval $(call add_define,DDR_NITRO_SECURE_REGION_END)) 305f29d1e0cSSheetal Tigadoliendif 306