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