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