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