xref: /rk3399_ARM-atf/plat/brcm/board/stingray/platform.mk (revision 6c6cc737706ccf468f45d549c42e69e3b6316d30)
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