xref: /rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk (revision b45b5bacb95d0e2d4539a7869c1ccf90da041498)
1*b45b5bacSMarek Vasut#
2*b45b5bacSMarek Vasut# Copyright (c) 2018-2025, Renesas Electronics Corporation. All rights reserved.
3*b45b5bacSMarek Vasut#
4*b45b5bacSMarek Vasut# SPDX-License-Identifier: BSD-3-Clause
5*b45b5bacSMarek Vasut#
6*b45b5bacSMarek Vasut
7*b45b5bacSMarek VasutPROGRAMMABLE_RESET_ADDRESS	:= 0
8*b45b5bacSMarek VasutCOLD_BOOT_SINGLE_CPU		:= 1
9*b45b5bacSMarek VasutARM_CCI_PRODUCT_ID		:= 500
10*b45b5bacSMarek VasutTRUSTED_BOARD_BOOT		:= 1
11*b45b5bacSMarek VasutRESET_TO_BL31			:= 1
12*b45b5bacSMarek VasutGENERATE_COT			:= 1
13*b45b5bacSMarek VasutENABLE_SVE_FOR_NS		:= 0
14*b45b5bacSMarek VasutMULTI_CONSOLE_API		:= 1
15*b45b5bacSMarek Vasut
16*b45b5bacSMarek VasutCRASH_REPORTING			:= 1
17*b45b5bacSMarek VasutHANDLE_EA_EL3_FIRST_NS		:= 1
18*b45b5bacSMarek VasutENABLE_STACK_PROTECTOR	:= strong
19*b45b5bacSMarek Vasut
20*b45b5bacSMarek Vasut# Process SET_SCMI_PARAM flag
21*b45b5bacSMarek Vasut# 0:Disable(default), 1:Enable
22*b45b5bacSMarek Vasutifndef SET_SCMI_PARAM
23*b45b5bacSMarek Vasut    SET_SCMI_PARAM := 0
24*b45b5bacSMarek Vasut    $(eval $(call add_define,SET_SCMI_PARAM))
25*b45b5bacSMarek Vasutelse
26*b45b5bacSMarek Vasut    ifeq (${SET_SCMI_PARAM}, 0)
27*b45b5bacSMarek Vasut        $(eval $(call add_define,SET_SCMI_PARAM))
28*b45b5bacSMarek Vasut    else ifeq (${SET_SCMI_PARAM},1)
29*b45b5bacSMarek Vasut        $(eval $(call add_define,SET_SCMI_PARAM))
30*b45b5bacSMarek Vasut    else
31*b45b5bacSMarek Vasut        $(error "Error:SET_SCMI_PARAM=${SET_SCMI_PARAM} is not supported.")
32*b45b5bacSMarek Vasut    endif
33*b45b5bacSMarek Vasutendif
34*b45b5bacSMarek Vasut
35*b45b5bacSMarek Vasutifndef PTP_NONSECURE_ACCESS
36*b45b5bacSMarek Vasut  PTP_NONSECURE_ACCESS:=0
37*b45b5bacSMarek Vasutendif
38*b45b5bacSMarek Vasut$(eval $(call add_define,PTP_NONSECURE_ACCESS))
39*b45b5bacSMarek Vasut
40*b45b5bacSMarek Vasutifeq (${SPD},none)
41*b45b5bacSMarek Vasut  SPD_NONE:=1
42*b45b5bacSMarek Vasut  $(eval $(call add_define,SPD_NONE))
43*b45b5bacSMarek Vasutendif
44*b45b5bacSMarek Vasut
45*b45b5bacSMarek Vasut# LSI setting common define
46*b45b5bacSMarek VasutRCAR_S4:=9
47*b45b5bacSMarek VasutRCAR_V3U:=10
48*b45b5bacSMarek VasutRCAR_V4H:=11
49*b45b5bacSMarek VasutRCAR_V4M:=12
50*b45b5bacSMarek VasutRCAR_AUTO:=99
51*b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_S4))
52*b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_V3U))
53*b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_V4H))
54*b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_V4M))
55*b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_AUTO))
56*b45b5bacSMarek Vasut$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT))
57*b45b5bacSMarek Vasut
58*b45b5bacSMarek Vasut
59*b45b5bacSMarek Vasutifndef LSI
60*b45b5bacSMarek Vasut  $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI")
61*b45b5bacSMarek Vasutelse
62*b45b5bacSMarek Vasut  ifeq (${LSI},AUTO)
63*b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_AUTO}
64*b45b5bacSMarek Vasut  else ifeq (${LSI},S4)
65*b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_S4}
66*b45b5bacSMarek Vasut  else ifeq (${LSI},V3U)
67*b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_V3U}
68*b45b5bacSMarek Vasut  else ifeq (${LSI},V4H)
69*b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_V4H}
70*b45b5bacSMarek Vasut  else ifeq (${LSI},V4M)
71*b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_V4M}
72*b45b5bacSMarek Vasut  else
73*b45b5bacSMarek Vasut    $(error "Error: ${LSI} is not supported.")
74*b45b5bacSMarek Vasut  endif
75*b45b5bacSMarek Vasut  $(eval $(call add_define,RCAR_LSI))
76*b45b5bacSMarek Vasutendif
77*b45b5bacSMarek Vasut
78*b45b5bacSMarek Vasutifeq (${RCAR_LSI},${RCAR_S4})
79*b45b5bacSMarek Vasut# Enable workarounds for selected Cortex-A55 errata.
80*b45b5bacSMarek VasutERRATA_A55_1530923 := 1
81*b45b5bacSMarek VasutBL31_SOURCES += lib/cpus/aarch64/cortex_a55.S
82*b45b5bacSMarek Vasutelse
83*b45b5bacSMarek Vasut# Enable workarounds for selected Cortex-A76 errata.
84*b45b5bacSMarek VasutDYNAMIC_WORKAROUND_CVE_2018_3639 := 1
85*b45b5bacSMarek VasutERRATA_A76_1073348  :=1
86*b45b5bacSMarek VasutERRATA_A76_1130799  :=1
87*b45b5bacSMarek VasutERRATA_A76_1220197  :=1
88*b45b5bacSMarek VasutERRATA_A76_1257314  :=1
89*b45b5bacSMarek VasutERRATA_A76_1262606  :=1
90*b45b5bacSMarek VasutERRATA_A76_1262888  :=1
91*b45b5bacSMarek VasutERRATA_A76_1275112  :=1
92*b45b5bacSMarek VasutERRATA_A76_1286807  :=1
93*b45b5bacSMarek VasutERRATA_A76_1946160  :=1
94*b45b5bacSMarek VasutERRATA_A76_2743102  :=1
95*b45b5bacSMarek Vasut
96*b45b5bacSMarek VasutBL31_SOURCES +=	lib/cpus/aarch64/cortex_a76.S
97*b45b5bacSMarek Vasutendif
98*b45b5bacSMarek Vasut
99*b45b5bacSMarek VasutUSE_COHERENT_MEM := 0
100*b45b5bacSMarek VasutHW_ASSISTED_COHERENCY := 1
101*b45b5bacSMarek Vasut
102*b45b5bacSMarek Vasut
103*b45b5bacSMarek VasutPLAT_INCLUDES	:=	-Iplat/renesas/rcar_gen4/include		\
104*b45b5bacSMarek Vasut			-Iplat/renesas/rcar_gen4			\
105*b45b5bacSMarek Vasut			-Idrivers/renesas/rcar_gen4/pwrc		\
106*b45b5bacSMarek Vasut			-Idrivers/renesas/rcar_gen4/scif		\
107*b45b5bacSMarek Vasut			-Idrivers/renesas/rcar_gen4/ptp			\
108*b45b5bacSMarek Vasut			-Idrivers/renesas/rcar_gen4/mssr
109*b45b5bacSMarek Vasut
110*b45b5bacSMarek Vasutifneq (${ENABLE_STACK_PROTECTOR},0)
111*b45b5bacSMarek VasutBL_COMMON_SOURCES	+=	plat/renesas/rcar_gen4/rcar_stack_protector.c
112*b45b5bacSMarek Vasutendif
113*b45b5bacSMarek Vasut
114*b45b5bacSMarek Vasut
115*b45b5bacSMarek Vasut# GIC-600 configuration
116*b45b5bacSMarek Vasut#GICV3_IMPL := GIC600
117*b45b5bacSMarek VasutGICV3_SUPPORT_GIC600 := 1
118*b45b5bacSMarek Vasut# Include GICv3 driver files
119*b45b5bacSMarek VasutUSE_GIC_DRIVER := 3
120*b45b5bacSMarek Vasut
121*b45b5bacSMarek Vasut# SCMI driver configuration
122*b45b5bacSMarek VasutSCMI_DRIVER_SOURES :=	drivers/arm/css/scmi/scmi_common.c		\
123*b45b5bacSMarek Vasut			drivers/arm/css/scmi/scmi_pwr_dmn_proto.c	\
124*b45b5bacSMarek Vasut			drivers/arm/css/scmi/scmi_sys_pwr_proto.c
125*b45b5bacSMarek Vasut
126*b45b5bacSMarek VasutPLAT_INCLUDES	+=	-Idrivers/arm/css/scmi				\
127*b45b5bacSMarek Vasut			-Iinclude/drivers
128*b45b5bacSMarek Vasut#
129*b45b5bacSMarek Vasut
130*b45b5bacSMarek VasutBL31_SOURCES	+=	${RCAR_GIC_SOURCES}				\
131*b45b5bacSMarek Vasut			plat/common/plat_psci_common.c			\
132*b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/plat_topology.c		\
133*b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/aarch64/plat_helpers.S	\
134*b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/aarch64/platform_common.c \
135*b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/bl31_plat_setup.c	\
136*b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/plat_pm.c		\
137*b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/rcar_common.c		\
138*b45b5bacSMarek Vasut			drivers/delay_timer/delay_timer.c       \
139*b45b5bacSMarek Vasut			drivers/delay_timer/generic_delay_timer.c   \
140*b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/pwrc/call_sram.S	\
141*b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/pwrc/pwrc.c		\
142*b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/scif/scif.c		\
143*b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/scif/scif_helpers.S	\
144*b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/mssr/mssr.c		\
145*b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/ptp/ptp.c		\
146*b45b5bacSMarek Vasut			drivers/arm/cci/cci.c
147*b45b5bacSMarek Vasut
148*b45b5bacSMarek Vasutifeq (${SET_SCMI_PARAM},1)
149*b45b5bacSMarek VasutBL31_SOURCES	+=	${SCMI_DRIVER_SOURES}				\
150*b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/plat_pm_scmi.c
151*b45b5bacSMarek Vasutendif
152*b45b5bacSMarek Vasut
153*b45b5bacSMarek Vasutinclude lib/xlat_tables_v2/xlat_tables.mk
154*b45b5bacSMarek VasutPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}
155*b45b5bacSMarek Vasut
156*b45b5bacSMarek Vasut# build the layout images for the bootrom and the necessary srecords
157*b45b5bacSMarek Vasutrcar: rcar_srecord
158*b45b5bacSMarek Vasutdistclean realclean clean: clean_srecord
159*b45b5bacSMarek Vasut
160*b45b5bacSMarek Vasut# srecords
161*b45b5bacSMarek VasutSREC_PATH	= ${BUILD_PLAT}
162*b45b5bacSMarek VasutBL31_ELF_SRC	= ${SREC_PATH}/bl31/bl31.elf
163*b45b5bacSMarek Vasut
164*b45b5bacSMarek Vasutclean_srecord:
165*b45b5bacSMarek Vasut	@echo "clean bl31 srecs"
166*b45b5bacSMarek Vasut	rm -f ${SREC_PATH}/bl31.srec
167*b45b5bacSMarek Vasut
168*b45b5bacSMarek Vasut.PHONY: rcar_srecord
169*b45b5bacSMarek Vasutrcar_srecord: $(BL31_ELF_SRC)
170*b45b5bacSMarek Vasut	@echo "generating srec: ${SREC_PATH}/bl31.srec"
171*b45b5bacSMarek Vasut	$(Q)$($(ARCH)-oc) -O srec --srec-forceS3 ${BL31_ELF_SRC} ${SREC_PATH}/bl31.srec
172*b45b5bacSMarek Vasut
173