xref: /arm-trusted-firmware/plat/arm/board/corstone1000/platform.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu#
2*91f16700Schasinglulu# Copyright (c) 2021-2023, Arm Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu#
4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu#
6*91f16700Schasinglulu
7*91f16700Schasinglulu# Making sure the corstone1000 platform type is specified
8*91f16700Schasingluluifeq ($(filter ${TARGET_PLATFORM}, fpga fvp),)
9*91f16700Schasinglulu	$(error TARGET_PLATFORM must be fpga or fvp)
10*91f16700Schasingluluendif
11*91f16700Schasinglulu
12*91f16700SchasingluluCORSTONE1000_CPU_LIBS	+=lib/cpus/aarch64/cortex_a35.S
13*91f16700Schasinglulu
14*91f16700SchasingluluPLAT_INCLUDES		:=	-Iplat/arm/board/corstone1000/common/include	\
15*91f16700Schasinglulu				-Iplat/arm/board/corstone1000/include		\
16*91f16700Schasinglulu				-Iinclude/plat/arm/common			\
17*91f16700Schasinglulu				-Iinclude/plat/arm/css/common/aarch64
18*91f16700Schasinglulu
19*91f16700Schasinglulu
20*91f16700SchasingluluCORSTONE1000_FW_NVCTR_VAL	:=	255
21*91f16700SchasingluluTFW_NVCTR_VAL		:=	${CORSTONE1000_FW_NVCTR_VAL}
22*91f16700SchasingluluNTFW_NVCTR_VAL		:=	${CORSTONE1000_FW_NVCTR_VAL}
23*91f16700Schasinglulu
24*91f16700Schasingluluoverride NEED_BL1	:=	no
25*91f16700Schasinglulu
26*91f16700Schasingluluoverride NEED_BL2	:=	yes
27*91f16700SchasingluluFIP_BL2_ARGS := tb-fw
28*91f16700Schasinglulu
29*91f16700Schasingluluoverride NEED_BL2U	:=	no
30*91f16700Schasingluluoverride NEED_BL31	:=	yes
31*91f16700SchasingluluNEED_BL32		:=	yes
32*91f16700Schasingluluoverride NEED_BL33	:=	yes
33*91f16700Schasinglulu
34*91f16700Schasinglulu# Include GICv2 driver files
35*91f16700Schasingluluinclude drivers/arm/gic/v2/gicv2.mk
36*91f16700Schasinglulu
37*91f16700SchasingluluCORSTONE1000_GIC_SOURCES	:=	${GICV2_SOURCES}			\
38*91f16700Schasinglulu				plat/common/plat_gicv2.c		\
39*91f16700Schasinglulu				plat/arm/common/arm_gicv2.c
40*91f16700Schasinglulu
41*91f16700Schasinglulu
42*91f16700SchasingluluBL2_SOURCES		+=	plat/arm/board/corstone1000/common/corstone1000_security.c		\
43*91f16700Schasinglulu				plat/arm/board/corstone1000/common/corstone1000_err.c		\
44*91f16700Schasinglulu				plat/arm/board/corstone1000/common/corstone1000_trusted_boot.c	\
45*91f16700Schasinglulu				lib/utils/mem_region.c					\
46*91f16700Schasinglulu				lib/cpus/aarch64/cpu_helpers.S \
47*91f16700Schasinglulu				plat/arm/board/corstone1000/common/corstone1000_helpers.S		\
48*91f16700Schasinglulu				plat/arm/board/corstone1000/common/corstone1000_plat.c		\
49*91f16700Schasinglulu				plat/arm/board/corstone1000/common/corstone1000_bl2_mem_params_desc.c \
50*91f16700Schasinglulu				${CORSTONE1000_CPU_LIBS}					\
51*91f16700Schasinglulu
52*91f16700Schasinglulu
53*91f16700SchasingluluBL31_SOURCES	+=	drivers/cfi/v2m/v2m_flash.c				\
54*91f16700Schasinglulu			lib/utils/mem_region.c					\
55*91f16700Schasinglulu			plat/arm/board/corstone1000/common/corstone1000_helpers.S		\
56*91f16700Schasinglulu			plat/arm/board/corstone1000/common/corstone1000_topology.c		\
57*91f16700Schasinglulu			plat/arm/board/corstone1000/common/corstone1000_security.c		\
58*91f16700Schasinglulu			plat/arm/board/corstone1000/common/corstone1000_plat.c		\
59*91f16700Schasinglulu			plat/arm/board/corstone1000/common/corstone1000_pm.c		\
60*91f16700Schasinglulu			plat/arm/board/corstone1000/common/corstone1000_bl31_setup.c	\
61*91f16700Schasinglulu			${CORSTONE1000_CPU_LIBS}					\
62*91f16700Schasinglulu			${CORSTONE1000_GIC_SOURCES}
63*91f16700Schasinglulu
64*91f16700Schasingluluifneq (${ENABLE_STACK_PROTECTOR},0)
65*91f16700Schasinglulu	ifneq (${ENABLE_STACK_PROTECTOR},none)
66*91f16700Schasinglulu		CORSTONE1000_SECURITY_SOURCES := plat/arm/board/corstone1000/common/corstone1000_stack_protector.c
67*91f16700Schasinglulu		BL2_SOURCES += ${CORSTONE1000_SECURITY_SOURCES}
68*91f16700Schasinglulu		BL31_SOURCES += ${CORSTONE1000_SECURITY_SOURCES}
69*91f16700Schasinglulu	endif
70*91f16700Schasingluluendif
71*91f16700Schasinglulu
72*91f16700SchasingluluFDT_SOURCES		+=	plat/arm/board/corstone1000/common/fdts/corstone1000_spmc_manifest.dts
73*91f16700SchasingluluCORSTONE1000_TOS_FW_CONFIG	:=	${BUILD_PLAT}/fdts/corstone1000_spmc_manifest.dtb
74*91f16700Schasinglulu
75*91f16700Schasinglulu# Add the SPMC manifest to FIP and specify the same to certtool
76*91f16700Schasinglulu$(eval $(call TOOL_ADD_PAYLOAD,${CORSTONE1000_TOS_FW_CONFIG},--tos-fw-config,${CORSTONE1000_TOS_FW_CONFIG}))
77*91f16700Schasinglulu
78*91f16700Schasinglulu# Adding TARGET_PLATFORM as a GCC define (-D option)
79*91f16700Schasinglulu$(eval $(call add_define,TARGET_PLATFORM_$(call uppercase,${TARGET_PLATFORM})))
80*91f16700Schasinglulu
81*91f16700Schasinglulu# Adding CORSTONE1000_FW_NVCTR_VAL as a GCC define (-D option)
82*91f16700Schasinglulu$(eval $(call add_define,CORSTONE1000_FW_NVCTR_VAL))
83*91f16700Schasinglulu
84*91f16700Schasingluluinclude plat/arm/common/arm_common.mk
85*91f16700Schasingluluinclude plat/arm/board/common/board_common.mk
86