xref: /arm-trusted-firmware/plat/renesas/rzg/platform.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu#
2*91f16700Schasinglulu# Copyright (c) 2018-2021, Renesas Electronics Corporation. All rights reserved.
3*91f16700Schasinglulu#
4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu#
6*91f16700Schasinglulu
7*91f16700Schasingluluinclude plat/renesas/common/common.mk
8*91f16700Schasinglulu
9*91f16700Schasingluluifndef LSI
10*91f16700Schasinglulu  $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI")
11*91f16700Schasingluluelse
12*91f16700Schasinglulu  ifeq (${LSI},AUTO)
13*91f16700Schasinglulu    RCAR_LSI:=${RCAR_AUTO}
14*91f16700Schasinglulu  else ifeq (${LSI},G2M)
15*91f16700Schasinglulu    RCAR_LSI:=${RZ_G2M}
16*91f16700Schasinglulu    ifndef LSI_CUT
17*91f16700Schasinglulu      # enable compatible function.
18*91f16700Schasinglulu      RCAR_LSI_CUT_COMPAT := 1
19*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
20*91f16700Schasinglulu    else
21*91f16700Schasinglulu      # disable compatible function.
22*91f16700Schasinglulu      ifeq (${LSI_CUT},10)
23*91f16700Schasinglulu        RCAR_LSI_CUT:=0
24*91f16700Schasinglulu      else ifeq (${LSI_CUT},11)
25*91f16700Schasinglulu        RCAR_LSI_CUT:=1
26*91f16700Schasinglulu      else ifeq (${LSI_CUT},13)
27*91f16700Schasinglulu        RCAR_LSI_CUT:=3
28*91f16700Schasinglulu      else ifeq (${LSI_CUT},30)
29*91f16700Schasinglulu        RCAR_LSI_CUT:=20
30*91f16700Schasinglulu      else
31*91f16700Schasinglulu        $(error "Error: ${LSI_CUT} is not supported.")
32*91f16700Schasinglulu      endif
33*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT))
34*91f16700Schasinglulu    endif
35*91f16700Schasinglulu  else ifeq (${LSI},G2H)
36*91f16700Schasinglulu    RCAR_LSI:=${RZ_G2H}
37*91f16700Schasinglulu    ifndef LSI_CUT
38*91f16700Schasinglulu      # enable compatible function.
39*91f16700Schasinglulu      RCAR_LSI_CUT_COMPAT := 1
40*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
41*91f16700Schasinglulu    else
42*91f16700Schasinglulu      # disable compatible function.
43*91f16700Schasinglulu      ifeq (${LSI_CUT},30)
44*91f16700Schasinglulu        RCAR_LSI_CUT:=20
45*91f16700Schasinglulu      else
46*91f16700Schasinglulu        $(error "Error: ${LSI_CUT} is not supported.")
47*91f16700Schasinglulu      endif
48*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT))
49*91f16700Schasinglulu    endif
50*91f16700Schasinglulu  else ifeq (${LSI},G2N)
51*91f16700Schasinglulu    RCAR_LSI:=${RZ_G2N}
52*91f16700Schasinglulu    ifndef LSI_CUT
53*91f16700Schasinglulu      # enable compatible function.
54*91f16700Schasinglulu      RCAR_LSI_CUT_COMPAT := 1
55*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
56*91f16700Schasinglulu    else
57*91f16700Schasinglulu      # disable compatible function.
58*91f16700Schasinglulu      ifeq (${LSI_CUT},10)
59*91f16700Schasinglulu        RCAR_LSI_CUT:=0
60*91f16700Schasinglulu      else ifeq (${LSI_CUT},11)
61*91f16700Schasinglulu        RCAR_LSI_CUT:=1
62*91f16700Schasinglulu      else
63*91f16700Schasinglulu        $(error "Error: ${LSI_CUT} is not supported.")
64*91f16700Schasinglulu      endif
65*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT))
66*91f16700Schasinglulu    endif
67*91f16700Schasinglulu  else ifeq (${LSI},G2E)
68*91f16700Schasinglulu    RCAR_LSI:=${RZ_G2E}
69*91f16700Schasinglulu    ifndef LSI_CUT
70*91f16700Schasinglulu      # enable compatible function.
71*91f16700Schasinglulu      RCAR_LSI_CUT_COMPAT := 1
72*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
73*91f16700Schasinglulu    else
74*91f16700Schasinglulu      # disable compatible function.
75*91f16700Schasinglulu      ifeq (${LSI_CUT},10)
76*91f16700Schasinglulu        RCAR_LSI_CUT:=0
77*91f16700Schasinglulu      else ifeq (${LSI_CUT},11)
78*91f16700Schasinglulu        RCAR_LSI_CUT:=1
79*91f16700Schasinglulu      else
80*91f16700Schasinglulu        $(error "Error: ${LSI_CUT} is not supported.")
81*91f16700Schasinglulu      endif
82*91f16700Schasinglulu      $(eval $(call add_define,RCAR_LSI_CUT))
83*91f16700Schasinglulu    endif
84*91f16700Schasinglulu  else
85*91f16700Schasinglulu    $(error "Error: ${LSI} is not supported.")
86*91f16700Schasinglulu  endif
87*91f16700Schasinglulu  $(eval $(call add_define,RCAR_LSI))
88*91f16700Schasingluluendif
89*91f16700Schasinglulu
90*91f16700Schasinglulu# Process RZG_LCS_STATE_DETECTION_ENABLE flag
91*91f16700Schasinglulu# Enable to get LCS state information
92*91f16700Schasingluluifndef RZG_LCS_STATE_DETECTION_ENABLE
93*91f16700SchasingluluRZG_LCS_STATE_DETECTION_ENABLE := 0
94*91f16700Schasingluluendif
95*91f16700Schasinglulu$(eval $(call add_define,RZG_LCS_STATE_DETECTION_ENABLE))
96*91f16700Schasinglulu
97*91f16700Schasinglulu# Process RCAR_SECURE_BOOT flag
98*91f16700Schasingluluifndef RCAR_SECURE_BOOT
99*91f16700SchasingluluRCAR_SECURE_BOOT := 0
100*91f16700Schasingluluendif
101*91f16700Schasinglulu$(eval $(call add_define,RCAR_SECURE_BOOT))
102*91f16700Schasinglulu
103*91f16700Schasinglulu# LCS state of RZ/G2 Chip is all CM.
104*91f16700Schasinglulu# However certain chips(RZ/G2M and RZ/G2E) have incorrect factory Fuse settings
105*91f16700Schasinglulu# which results in getting incorrect LCS states
106*91f16700Schasinglulu# if need to enable RCAR_SECURE_BOOT, make sure the chip has proper factory Fuse settings.
107*91f16700Schasingluluifeq (${RCAR_SECURE_BOOT},1)
108*91f16700Schasinglulu  ifeq (${RZG_LCS_STATE_DETECTION_ENABLE},0)
109*91f16700Schasinglulu    $(error "Error: Please check the chip has proper factory Fuse settings and set RZG_LCS_STATE_DETECTION_ENABLE to enable.")
110*91f16700Schasinglulu  endif
111*91f16700Schasingluluendif
112*91f16700Schasinglulu
113*91f16700Schasinglulu# lock RPC HYPERFLASH access by default
114*91f16700Schasinglulu# unlock to repogram the ATF firmware from u-boot
115*91f16700Schasingluluifndef RCAR_RPC_HYPERFLASH_LOCKED
116*91f16700SchasingluluRCAR_RPC_HYPERFLASH_LOCKED := 1
117*91f16700Schasingluluendif
118*91f16700Schasinglulu$(eval $(call add_define,RCAR_RPC_HYPERFLASH_LOCKED))
119*91f16700Schasinglulu
120*91f16700Schasinglulu# Process RCAR_QOS_TYPE flag
121*91f16700Schasingluluifndef RCAR_QOS_TYPE
122*91f16700SchasingluluRCAR_QOS_TYPE := 0
123*91f16700Schasingluluendif
124*91f16700Schasinglulu$(eval $(call add_define,RCAR_QOS_TYPE))
125*91f16700Schasinglulu
126*91f16700Schasinglulu# Process RCAR_DRAM_SPLIT flag
127*91f16700Schasingluluifndef RCAR_DRAM_SPLIT
128*91f16700SchasingluluRCAR_DRAM_SPLIT := 0
129*91f16700Schasingluluendif
130*91f16700Schasinglulu$(eval $(call add_define,RCAR_DRAM_SPLIT))
131*91f16700Schasinglulu
132*91f16700Schasinglulu# Process RCAR_BL33_EXECUTION_EL flag
133*91f16700Schasingluluifndef RCAR_BL33_EXECUTION_EL
134*91f16700SchasingluluRCAR_BL33_EXECUTION_EL := 0
135*91f16700Schasingluluendif
136*91f16700Schasinglulu$(eval $(call add_define,RCAR_BL33_EXECUTION_EL))
137*91f16700Schasinglulu
138*91f16700Schasinglulu# Process RCAR_AVS_SETTING_ENABLE flag
139*91f16700Schasingluluifndef AVS_SETTING_ENABLE
140*91f16700SchasingluluAVS_SETTING_ENABLE := 0
141*91f16700Schasingluluendif
142*91f16700Schasinglulu$(eval $(call add_define,AVS_SETTING_ENABLE))
143*91f16700Schasinglulu
144*91f16700Schasinglulu# Process RCAR_LOSSY_ENABLE flag
145*91f16700Schasingluluifndef RCAR_LOSSY_ENABLE
146*91f16700SchasingluluRCAR_LOSSY_ENABLE := 0
147*91f16700Schasingluluendif
148*91f16700Schasinglulu$(eval $(call add_define,RCAR_LOSSY_ENABLE))
149*91f16700Schasinglulu
150*91f16700Schasinglulu# Process LIFEC_DBSC_PROTECT_ENABLE flag
151*91f16700Schasingluluifndef LIFEC_DBSC_PROTECT_ENABLE
152*91f16700SchasingluluLIFEC_DBSC_PROTECT_ENABLE := 1
153*91f16700Schasingluluendif
154*91f16700Schasinglulu$(eval $(call add_define,LIFEC_DBSC_PROTECT_ENABLE))
155*91f16700Schasinglulu
156*91f16700Schasinglulu# Process RCAR_GEN3_ULCB flag
157*91f16700Schasingluluifndef RCAR_GEN3_ULCB
158*91f16700SchasingluluRCAR_GEN3_ULCB := 0
159*91f16700Schasingluluendif
160*91f16700Schasinglulu
161*91f16700Schasinglulu# Process RCAR_REF_INT flag
162*91f16700Schasingluluifndef RCAR_REF_INT
163*91f16700SchasingluluRCAR_REF_INT :=0
164*91f16700Schasingluluendif
165*91f16700Schasinglulu$(eval $(call add_define,RCAR_REF_INT))
166*91f16700Schasinglulu
167*91f16700Schasinglulu# Process RCAR_REWT_TRAINING flag
168*91f16700Schasingluluifndef RCAR_REWT_TRAINING
169*91f16700SchasingluluRCAR_REWT_TRAINING := 1
170*91f16700Schasingluluendif
171*91f16700Schasinglulu$(eval $(call add_define,RCAR_REWT_TRAINING))
172*91f16700Schasinglulu
173*91f16700Schasinglulu# Process RCAR_SYSTEM_SUSPEND flag
174*91f16700Schasingluluifndef RCAR_SYSTEM_SUSPEND
175*91f16700SchasingluluRCAR_SYSTEM_SUSPEND := 0
176*91f16700Schasingluluendif
177*91f16700Schasinglulu$(eval $(call add_define,RCAR_SYSTEM_SUSPEND))
178*91f16700Schasinglulu
179*91f16700Schasinglulu# Process RCAR_DRAM_LPDDR4_MEMCONF flag
180*91f16700Schasingluluifndef RCAR_DRAM_LPDDR4_MEMCONF
181*91f16700SchasingluluRCAR_DRAM_LPDDR4_MEMCONF :=1
182*91f16700Schasingluluendif
183*91f16700Schasinglulu$(eval $(call add_define,RCAR_DRAM_LPDDR4_MEMCONF))
184*91f16700Schasinglulu
185*91f16700Schasinglulu# Process RCAR_DRAM_DDR3L_MEMCONF flag
186*91f16700Schasingluluifndef RCAR_DRAM_DDR3L_MEMCONF
187*91f16700SchasingluluRCAR_DRAM_DDR3L_MEMCONF :=1
188*91f16700Schasingluluendif
189*91f16700Schasinglulu$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMCONF))
190*91f16700Schasinglulu
191*91f16700Schasinglulu# Process RCAR_DRAM_DDR3L_MEMDUAL flag
192*91f16700Schasingluluifndef RCAR_DRAM_DDR3L_MEMDUAL
193*91f16700SchasingluluRCAR_DRAM_DDR3L_MEMDUAL :=1
194*91f16700Schasingluluendif
195*91f16700Schasinglulu$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMDUAL))
196*91f16700Schasinglulu
197*91f16700Schasinglulu# Process RCAR_BL33_ARG0 flag
198*91f16700Schasingluluifdef RCAR_BL33_ARG0
199*91f16700Schasinglulu$(eval $(call add_define,RCAR_BL33_ARG0))
200*91f16700Schasingluluendif
201*91f16700Schasinglulu
202*91f16700Schasinglulu#Process RCAR_BL2_DCACHE flag
203*91f16700Schasingluluifndef RCAR_BL2_DCACHE
204*91f16700SchasingluluRCAR_BL2_DCACHE := 0
205*91f16700Schasingluluendif
206*91f16700Schasinglulu$(eval $(call add_define,RCAR_BL2_DCACHE))
207*91f16700Schasinglulu
208*91f16700Schasinglulu# Process RCAR_DRAM_CHANNEL flag
209*91f16700Schasingluluifndef RCAR_DRAM_CHANNEL
210*91f16700SchasingluluRCAR_DRAM_CHANNEL :=15
211*91f16700Schasingluluendif
212*91f16700Schasinglulu$(eval $(call add_define,RCAR_DRAM_CHANNEL))
213*91f16700Schasinglulu
214*91f16700Schasinglulu#Process RCAR_SYSTEM_RESET_KEEPON_DDR flag
215*91f16700Schasingluluifndef RCAR_SYSTEM_RESET_KEEPON_DDR
216*91f16700SchasingluluRCAR_SYSTEM_RESET_KEEPON_DDR := 0
217*91f16700Schasingluluendif
218*91f16700Schasinglulu$(eval $(call add_define,RCAR_SYSTEM_RESET_KEEPON_DDR))
219*91f16700Schasinglulu
220*91f16700SchasingluluRZG_SOC :=1
221*91f16700Schasinglulu$(eval $(call add_define,RZG_SOC))
222*91f16700Schasinglulu
223*91f16700Schasingluluinclude drivers/renesas/common/ddr/ddr.mk
224*91f16700Schasingluluinclude drivers/renesas/rzg/qos/qos.mk
225*91f16700Schasingluluinclude drivers/renesas/rzg/pfc/pfc.mk
226*91f16700Schasingluluinclude lib/libfdt/libfdt.mk
227*91f16700Schasinglulu
228*91f16700SchasingluluPLAT_INCLUDES	+=	-Idrivers/renesas/common/ddr		\
229*91f16700Schasinglulu			-Idrivers/renesas/rzg/qos		\
230*91f16700Schasinglulu			-Idrivers/renesas/rzg/board		\
231*91f16700Schasinglulu			-Idrivers/renesas/common		\
232*91f16700Schasinglulu			-Idrivers/renesas/common/iic_dvfs	\
233*91f16700Schasinglulu			-Idrivers/renesas/common/avs		\
234*91f16700Schasinglulu			-Idrivers/renesas/common/delay		\
235*91f16700Schasinglulu			-Idrivers/renesas/common/rom		\
236*91f16700Schasinglulu			-Idrivers/renesas/common/scif		\
237*91f16700Schasinglulu			-Idrivers/renesas/common/emmc		\
238*91f16700Schasinglulu			-Idrivers/renesas/common/pwrc		\
239*91f16700Schasinglulu			-Idrivers/renesas/common/io
240*91f16700Schasinglulu
241*91f16700SchasingluluBL2_SOURCES	+=	plat/renesas/rzg/bl2_plat_setup.c	\
242*91f16700Schasinglulu			drivers/renesas/rzg/board/board.c
243*91f16700Schasinglulu
244*91f16700Schasinglulu# build the layout images for the bootrom and the necessary srecords
245*91f16700Schasinglulurzg: rzg_layout_create rzg_srecord
246*91f16700Schasingluludistclean realclean clean: clean_layout_tool clean_srecord
247*91f16700Schasinglulu
248*91f16700Schasinglulu# layout images
249*91f16700SchasingluluLAYOUT_TOOLPATH ?= tools/renesas/rzg_layout_create
250*91f16700Schasinglulu
251*91f16700Schasingluluclean_layout_tool:
252*91f16700Schasinglulu	@echo "clean layout tool"
253*91f16700Schasinglulu	${Q}${MAKE} -C ${LAYOUT_TOOLPATH} clean
254*91f16700Schasinglulu
255*91f16700Schasinglulu.PHONY: rzg_layout_create
256*91f16700Schasinglulurzg_layout_create:
257*91f16700Schasinglulu	@echo "generating layout srecs"
258*91f16700Schasinglulu	${Q}${MAKE} CPPFLAGS="-D=AARCH64" --no-print-directory -C ${LAYOUT_TOOLPATH}
259*91f16700Schasinglulu
260*91f16700Schasinglulu# srecords
261*91f16700SchasingluluSREC_PATH	= ${BUILD_PLAT}
262*91f16700SchasingluluBL2_ELF_SRC	= ${SREC_PATH}/bl2/bl2.elf
263*91f16700SchasingluluBL31_ELF_SRC	= ${SREC_PATH}/bl31/bl31.elf
264*91f16700Schasinglulu
265*91f16700Schasingluluclean_srecord:
266*91f16700Schasinglulu	@echo "clean bl2 and bl31 srecs"
267*91f16700Schasinglulu	rm -f ${SREC_PATH}/bl2.srec ${SREC_PATH}/bl31.srec
268*91f16700Schasinglulu
269*91f16700Schasinglulu.PHONY: rzg_srecord
270*91f16700Schasinglulurzg_srecord: $(BL2_ELF_SRC) $(BL31_ELF_SRC)
271*91f16700Schasinglulu	@echo "generating srec: ${SREC_PATH}/bl2.srec"
272*91f16700Schasinglulu	$(Q)$(OC) -O srec --srec-forceS3 ${BL2_ELF_SRC}  ${SREC_PATH}/bl2.srec
273*91f16700Schasinglulu	@echo "generating srec: ${SREC_PATH}/bl31.srec"
274*91f16700Schasinglulu	$(Q)$(OC) -O srec --srec-forceS3 ${BL31_ELF_SRC} ${SREC_PATH}/bl31.srec
275