xref: /rk3399_ARM-atf/plat/renesas/rcar/platform.mk (revision 11d15c3e3f456282e8b5a6409584baadbd7aca8f)
17e532c4bSJorge Ramirez-Ortiz#
27e532c4bSJorge Ramirez-Ortiz# Copyright (c) 2018, Renesas Electronics Corporation. All rights reserved.
37e532c4bSJorge Ramirez-Ortiz#
47e532c4bSJorge Ramirez-Ortiz# SPDX-License-Identifier: BSD-3-Clause
57e532c4bSJorge Ramirez-Ortiz#
67e532c4bSJorge Ramirez-Ortiz
769086fe1SMarek VasutPROGRAMMABLE_RESET_ADDRESS	:= 0
87e532c4bSJorge Ramirez-OrtizCOLD_BOOT_SINGLE_CPU		:= 1
97e532c4bSJorge Ramirez-OrtizARM_CCI_PRODUCT_ID		:= 500
107e532c4bSJorge Ramirez-OrtizTRUSTED_BOARD_BOOT		:= 1
117e532c4bSJorge Ramirez-OrtizRESET_TO_BL31			:= 1
127e532c4bSJorge Ramirez-OrtizGENERATE_COT			:= 1
137e532c4bSJorge Ramirez-OrtizBL2_AT_EL3			:= 1
148a2f1eeeSMarek VasutENABLE_SVE_FOR_NS		:= 0
157e532c4bSJorge Ramirez-Ortiz
160969397fSMarek VasutCRASH_REPORTING			:= 1
170969397fSMarek VasutHANDLE_EA_EL3_FIRST		:= 1
180969397fSMarek Vasut
197e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT))
207e532c4bSJorge Ramirez-Ortiz
217e532c4bSJorge Ramirez-Ortizifeq (${SPD},none)
227e532c4bSJorge Ramirez-Ortiz  SPD_NONE:=1
237e532c4bSJorge Ramirez-Ortiz  $(eval $(call add_define,SPD_NONE))
247e532c4bSJorge Ramirez-Ortizendif
257e532c4bSJorge Ramirez-Ortiz
267e532c4bSJorge Ramirez-Ortiz# LSI setting common define
277e532c4bSJorge Ramirez-OrtizRCAR_H3:=0
287e532c4bSJorge Ramirez-OrtizRCAR_M3:=1
297e532c4bSJorge Ramirez-OrtizRCAR_M3N:=2
307e532c4bSJorge Ramirez-OrtizRCAR_E3:=3
317e532c4bSJorge Ramirez-OrtizRCAR_H3N:=4
32bfbf5df4SMarek VasutRCAR_D3:=5
33b709fe9cSValentine BarshakRCAR_V3M:=6
347e532c4bSJorge Ramirez-OrtizRCAR_AUTO:=99
357e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_H3))
367e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_M3))
377e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_M3N))
387e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_E3))
397e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_H3N))
40bfbf5df4SMarek Vasut$(eval $(call add_define,RCAR_D3))
41b709fe9cSValentine Barshak$(eval $(call add_define,RCAR_V3M))
427e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_AUTO))
437e532c4bSJorge Ramirez-OrtizRCAR_CUT_10:=0
447e532c4bSJorge Ramirez-OrtizRCAR_CUT_11:=1
45845d8fbbSMarek VasutRCAR_CUT_13:=3
467e532c4bSJorge Ramirez-OrtizRCAR_CUT_20:=10
477e532c4bSJorge Ramirez-OrtizRCAR_CUT_30:=20
487e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_10))
497e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_11))
50845d8fbbSMarek Vasut$(eval $(call add_define,RCAR_CUT_13))
517e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_20))
527e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_30))
537e532c4bSJorge Ramirez-Ortiz
547e532c4bSJorge Ramirez-Ortizifndef LSI
557e532c4bSJorge Ramirez-Ortiz  $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI")
567e532c4bSJorge Ramirez-Ortizelse
577e532c4bSJorge Ramirez-Ortiz  ifeq (${LSI},AUTO)
587e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_AUTO}
597e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},H3)
607e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_H3}
617e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
627e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
637e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
647e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
657e532c4bSJorge Ramirez-Ortiz    else
667e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
677e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
687e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
697e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},11)
707e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=1
717e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},20)
727e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=10
737e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},30)
747e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=20
757e532c4bSJorge Ramirez-Ortiz      else
767e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
777e532c4bSJorge Ramirez-Ortiz      endif
787e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
797e532c4bSJorge Ramirez-Ortiz    endif
807e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},H3N)
817e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_H3N}
827e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
837e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
847e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
857e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
867e532c4bSJorge Ramirez-Ortiz    else
877e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
887e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},30)
897e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=20
907e532c4bSJorge Ramirez-Ortiz      else
917e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
927e532c4bSJorge Ramirez-Ortiz      endif
937e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
947e532c4bSJorge Ramirez-Ortiz    endif
957e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},M3)
967e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_M3}
977e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
987e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
997e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
1007e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
1017e532c4bSJorge Ramirez-Ortiz    else
1027e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
1037e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
1047e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
1057e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},11)
1067e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=1
107845d8fbbSMarek Vasut      else ifeq (${LSI_CUT},13)
108845d8fbbSMarek Vasut        RCAR_LSI_CUT:=3
109845d8fbbSMarek Vasut      else ifeq (${LSI_CUT},30)
110845d8fbbSMarek Vasut        RCAR_LSI_CUT:=20
1117e532c4bSJorge Ramirez-Ortiz      else
1127e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
1137e532c4bSJorge Ramirez-Ortiz      endif
1147e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
1157e532c4bSJorge Ramirez-Ortiz    endif
1167e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},M3N)
1177e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_M3N}
1187e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
1197e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
1207e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
1217e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
1227e532c4bSJorge Ramirez-Ortiz    else
1237e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
1247e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
1257e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
1267e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},11)
1277e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=1
1287e532c4bSJorge Ramirez-Ortiz      else
1297e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
1307e532c4bSJorge Ramirez-Ortiz      endif
1317e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
1327e532c4bSJorge Ramirez-Ortiz    endif
1337e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},E3)
1347e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_E3}
1357e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
1367e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
1377e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
1387e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
1397e532c4bSJorge Ramirez-Ortiz    else
1407e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
1417e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
1427e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
143845d8fbbSMarek Vasut      else ifeq (${LSI_CUT},11)
144845d8fbbSMarek Vasut        RCAR_LSI_CUT:=1
1457e532c4bSJorge Ramirez-Ortiz      else
1467e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
1477e532c4bSJorge Ramirez-Ortiz      endif
1487e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
1497e532c4bSJorge Ramirez-Ortiz    endif
150bfbf5df4SMarek Vasut  else ifeq (${LSI},D3)
151bfbf5df4SMarek Vasut    RCAR_LSI:=${RCAR_D3}
152bfbf5df4SMarek Vasut    ifndef LSI_CUT
153bfbf5df4SMarek Vasut      # enable compatible function.
154bfbf5df4SMarek Vasut      RCAR_LSI_CUT_COMPAT := 1
155bfbf5df4SMarek Vasut      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
156bfbf5df4SMarek Vasut    else
157bfbf5df4SMarek Vasut      # disable compatible function.
158bfbf5df4SMarek Vasut      ifeq (${LSI_CUT},10)
159bfbf5df4SMarek Vasut        RCAR_LSI_CUT:=0
160bfbf5df4SMarek Vasut      else
161bfbf5df4SMarek Vasut        $(error "Error: ${LSI_CUT} is not supported.")
162bfbf5df4SMarek Vasut      endif
163bfbf5df4SMarek Vasut      $(eval $(call add_define,RCAR_LSI_CUT))
164bfbf5df4SMarek Vasut    endif
165b709fe9cSValentine Barshak  else ifeq (${LSI},V3M)
166b709fe9cSValentine Barshak    RCAR_LSI:=${RCAR_V3M}
167b709fe9cSValentine Barshak    ifndef LSI_CUT
168b709fe9cSValentine Barshak      # enable compatible function.
169b709fe9cSValentine Barshak      RCAR_LSI_CUT_COMPAT := 1
170b709fe9cSValentine Barshak      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
171b709fe9cSValentine Barshak    else
172b709fe9cSValentine Barshak      # disable compatible function.
173b709fe9cSValentine Barshak      ifeq (${LSI_CUT},10)
174b709fe9cSValentine Barshak        RCAR_LSI_CUT:=0
175b709fe9cSValentine Barshak      endif
176b709fe9cSValentine Barshak      ifeq (${LSI_CUT},20)
177b709fe9cSValentine Barshak        RCAR_LSI_CUT:=10
178b709fe9cSValentine Barshak      endif
179b709fe9cSValentine Barshak      $(eval $(call add_define,RCAR_LSI_CUT))
180b709fe9cSValentine Barshak    endif
1817e532c4bSJorge Ramirez-Ortiz  else
1827e532c4bSJorge Ramirez-Ortiz    $(error "Error: ${LSI} is not supported.")
1837e532c4bSJorge Ramirez-Ortiz  endif
1847e532c4bSJorge Ramirez-Ortiz  $(eval $(call add_define,RCAR_LSI))
1857e532c4bSJorge Ramirez-Ortizendif
1867e532c4bSJorge Ramirez-Ortiz
1876e93392bSJorge Ramirez-Ortiz# lock RPC HYPERFLASH access by default
1886e93392bSJorge Ramirez-Ortiz# unlock to repogram the ATF firmware from u-boot
1896e93392bSJorge Ramirez-Ortizifndef RCAR_RPC_HYPERFLASH_LOCKED
1906e93392bSJorge Ramirez-OrtizRCAR_RPC_HYPERFLASH_LOCKED := 1
1916e93392bSJorge Ramirez-Ortizendif
1926e93392bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_RPC_HYPERFLASH_LOCKED))
1936e93392bSJorge Ramirez-Ortiz
1947e532c4bSJorge Ramirez-Ortiz# Process RCAR_SECURE_BOOT flag
1957e532c4bSJorge Ramirez-Ortizifndef RCAR_SECURE_BOOT
1967e532c4bSJorge Ramirez-OrtizRCAR_SECURE_BOOT := 1
1977e532c4bSJorge Ramirez-Ortizendif
1987e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SECURE_BOOT))
1997e532c4bSJorge Ramirez-Ortiz
2007e532c4bSJorge Ramirez-Ortiz# Process RCAR_QOS_TYPE flag
2017e532c4bSJorge Ramirez-Ortizifndef RCAR_QOS_TYPE
2027e532c4bSJorge Ramirez-OrtizRCAR_QOS_TYPE := 0
2037e532c4bSJorge Ramirez-Ortizendif
2047e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_QOS_TYPE))
2057e532c4bSJorge Ramirez-Ortiz
2067e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_SPLIT flag
2077e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_SPLIT
2087e532c4bSJorge Ramirez-OrtizRCAR_DRAM_SPLIT := 0
2097e532c4bSJorge Ramirez-Ortizendif
2107e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_SPLIT))
2117e532c4bSJorge Ramirez-Ortiz
2127e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_EXECUTION_EL flag
2137e532c4bSJorge Ramirez-Ortizifndef RCAR_BL33_EXECUTION_EL
2147e532c4bSJorge Ramirez-OrtizRCAR_BL33_EXECUTION_EL := 0
2157e532c4bSJorge Ramirez-Ortizendif
2167e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_EXECUTION_EL))
2177e532c4bSJorge Ramirez-Ortiz
2187e532c4bSJorge Ramirez-Ortiz# Process RCAR_AVS_SETTING_ENABLE flag
2197e532c4bSJorge Ramirez-Ortizifeq (${RCAR_AVS_SETTING_ENABLE},0)
2207e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 0
2217e532c4bSJorge Ramirez-Ortizelse
2227e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 1
2237e532c4bSJorge Ramirez-Ortizendif
2247e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,AVS_SETTING_ENABLE))
2257e532c4bSJorge Ramirez-Ortiz
2267e532c4bSJorge Ramirez-Ortiz# Process RCAR_LOSSY_ENABLE flag
2277e532c4bSJorge Ramirez-Ortizifndef RCAR_LOSSY_ENABLE
2287e532c4bSJorge Ramirez-OrtizRCAR_LOSSY_ENABLE := 0
2297e532c4bSJorge Ramirez-Ortizendif
2307e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_LOSSY_ENABLE))
2317e532c4bSJorge Ramirez-Ortiz
2327e532c4bSJorge Ramirez-Ortiz# Process LIFEC_DBSC_PROTECT_ENABLE flag
2337e532c4bSJorge Ramirez-Ortizifndef LIFEC_DBSC_PROTECT_ENABLE
2347e532c4bSJorge Ramirez-OrtizLIFEC_DBSC_PROTECT_ENABLE := 1
2357e532c4bSJorge Ramirez-Ortizendif
2367e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,LIFEC_DBSC_PROTECT_ENABLE))
2377e532c4bSJorge Ramirez-Ortiz
2387e532c4bSJorge Ramirez-Ortiz# Process PMIC_ROHM_BD9571 flag
2397e532c4bSJorge Ramirez-Ortizifndef PMIC_ROHM_BD9571
2407e532c4bSJorge Ramirez-OrtizPMIC_ROHM_BD9571 := 1
2417e532c4bSJorge Ramirez-Ortizendif
2427e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_ROHM_BD9571))
2437e532c4bSJorge Ramirez-Ortiz
2447e532c4bSJorge Ramirez-Ortiz# Process PMIC_LEVEL_MODE flag
2457e532c4bSJorge Ramirez-Ortizifndef PMIC_LEVEL_MODE
2467e532c4bSJorge Ramirez-OrtizPMIC_LEVEL_MODE := 1
2477e532c4bSJorge Ramirez-Ortizendif
2487e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_LEVEL_MODE))
2497e532c4bSJorge Ramirez-Ortiz
2507e532c4bSJorge Ramirez-Ortiz# Process RCAR_GEN3_ULCB flag
2517e532c4bSJorge Ramirez-Ortizifndef RCAR_GEN3_ULCB
2527e532c4bSJorge Ramirez-OrtizRCAR_GEN3_ULCB := 0
2537e532c4bSJorge Ramirez-Ortizendif
2547e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1)
2557e532c4bSJorge Ramirez-Ortiz BOARD_DEFAULT := 0x10
2567e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,BOARD_DEFAULT))
2577e532c4bSJorge Ramirez-Ortizendif
2587e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_GEN3_ULCB))
2597e532c4bSJorge Ramirez-Ortiz
2607e532c4bSJorge Ramirez-Ortiz# Process RCAR_REF_INT flag
2617e532c4bSJorge Ramirez-Ortizifndef RCAR_REF_INT
2627e532c4bSJorge Ramirez-OrtizRCAR_REF_INT :=0
2637e532c4bSJorge Ramirez-Ortizendif
2647e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REF_INT))
2657e532c4bSJorge Ramirez-Ortiz
2667e532c4bSJorge Ramirez-Ortiz# Process RCAR_REWT_TRAINING flag
2677e532c4bSJorge Ramirez-Ortizifndef RCAR_REWT_TRAINING
268*11d15c3eSToshiyuki OgasaharaRCAR_REWT_TRAINING := 1
2697e532c4bSJorge Ramirez-Ortizendif
2707e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REWT_TRAINING))
2717e532c4bSJorge Ramirez-Ortiz
2727e532c4bSJorge Ramirez-Ortiz# Process RCAR_SYSTEM_SUSPEND flag
2737e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_SUSPEND
2747e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_SUSPEND := 1
2757e532c4bSJorge Ramirez-Ortizendif
2767e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_SUSPEND))
2777e532c4bSJorge Ramirez-Ortiz
2787e532c4bSJorge Ramirez-Ortiz# SYSTEM_SUSPEND requires power control of PMIC etc.
2797e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu,
2807e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary.
2817e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_SUSPEND},1)
2827e532c4bSJorge Ramirez-Ortiz  ifeq (${PMIC_ROHM_BD9571},0)
2837e532c4bSJorge Ramirez-Ortiz    $(error "Error: When you want RCAR_SYSTEM_SUSPEND to be enable, please also set PMIC_ROHM_BD9571 to enable.")
2847e532c4bSJorge Ramirez-Ortiz  endif
2857e532c4bSJorge Ramirez-Ortizendif
2867e532c4bSJorge Ramirez-Ortiz
2877e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_LPDDR4_MEMCONF flag
2887e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_LPDDR4_MEMCONF
2897e532c4bSJorge Ramirez-OrtizRCAR_DRAM_LPDDR4_MEMCONF :=1
2907e532c4bSJorge Ramirez-Ortizendif
2917e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_LPDDR4_MEMCONF))
2927e532c4bSJorge Ramirez-Ortiz
2937e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMCONF flag
2947e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMCONF
2957e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMCONF :=1
2967e532c4bSJorge Ramirez-Ortizendif
2977e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMCONF))
2987e532c4bSJorge Ramirez-Ortiz
2997e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMDUAL flag
3007e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMDUAL
3017e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMDUAL :=1
3027e532c4bSJorge Ramirez-Ortizendif
3037e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMDUAL))
3047e532c4bSJorge Ramirez-Ortiz
3057e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_ARG0 flag
3067e532c4bSJorge Ramirez-Ortizifdef RCAR_BL33_ARG0
3077e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_ARG0))
3087e532c4bSJorge Ramirez-Ortizendif
3097e532c4bSJorge Ramirez-Ortiz
3107e532c4bSJorge Ramirez-Ortiz#Process RCAR_BL2_DCACHE flag
3117e532c4bSJorge Ramirez-Ortizifndef RCAR_BL2_DCACHE
3127e532c4bSJorge Ramirez-OrtizRCAR_BL2_DCACHE := 0
3137e532c4bSJorge Ramirez-Ortizendif
3147e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL2_DCACHE))
3157e532c4bSJorge Ramirez-Ortiz
3167e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_CHANNEL flag
3177e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_CHANNEL
3187e532c4bSJorge Ramirez-OrtizRCAR_DRAM_CHANNEL :=15
3197e532c4bSJorge Ramirez-Ortizendif
3207e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_CHANNEL))
3217e532c4bSJorge Ramirez-Ortiz
3227e532c4bSJorge Ramirez-Ortiz#Process RCAR_SYSTEM_RESET_KEEPON_DDR flag
3237e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_RESET_KEEPON_DDR
3247e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_RESET_KEEPON_DDR := 0
3257e532c4bSJorge Ramirez-Ortizendif
3267e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_RESET_KEEPON_DDR))
3277e532c4bSJorge Ramirez-Ortiz
3287e532c4bSJorge Ramirez-Ortiz# RCAR_SYSTEM_RESET_KEEPON_DDR requires power control of PMIC etc.
3297e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu,
3307e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary.
3317e532c4bSJorge Ramirez-Ortiz# Also, it is necessary to enable RCAR_SYSTEM_SUSPEND.
3327e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_RESET_KEEPON_DDR},1)
3337e532c4bSJorge Ramirez-Ortiz  ifeq (${PMIC_ROHM_BD9571},0)
3347e532c4bSJorge Ramirez-Ortiz    $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set PMIC_ROHM_BD9571 to enable.")
3357e532c4bSJorge Ramirez-Ortiz  endif
3367e532c4bSJorge Ramirez-Ortiz  ifeq (${RCAR_SYSTEM_SUSPEND},0)
3377e532c4bSJorge Ramirez-Ortiz    $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set RCAR_SYSTEM_SUSPEND to enable.")
3387e532c4bSJorge Ramirez-Ortiz  endif
3397e532c4bSJorge Ramirez-Ortizendif
3407e532c4bSJorge Ramirez-Ortiz
3417e532c4bSJorge Ramirez-Ortiz# Enable workarounds for selected Cortex-A53 erratas.
3427e532c4bSJorge Ramirez-OrtizERRATA_A53_835769  := 1
3437e532c4bSJorge Ramirez-OrtizERRATA_A53_843419  := 1
3447e532c4bSJorge Ramirez-OrtizERRATA_A53_855873  := 1
3457e532c4bSJorge Ramirez-Ortiz
3467e532c4bSJorge Ramirez-Ortiz# Enable workarounds for selected Cortex-A57 erratas.
3477e532c4bSJorge Ramirez-OrtizERRATA_A57_859972  := 1
3487e532c4bSJorge Ramirez-OrtizERRATA_A57_813419  := 1
3497e532c4bSJorge Ramirez-Ortiz
3506ac2892aSJorge Ramirez-Ortizinclude drivers/staging/renesas/rcar/ddr/ddr.mk
3516ac2892aSJorge Ramirez-Ortizinclude drivers/staging/renesas/rcar/qos/qos.mk
3526ac2892aSJorge Ramirez-Ortizinclude drivers/staging/renesas/rcar/pfc/pfc.mk
3531d85c4bdSMarek Vasutinclude lib/libfdt/libfdt.mk
3547e532c4bSJorge Ramirez-Ortiz
3555e447816SAntonio Nino DiazPLAT_INCLUDES	:=	-Idrivers/staging/renesas/rcar/ddr	\
3566ac2892aSJorge Ramirez-Ortiz			-Idrivers/staging/renesas/rcar/qos	\
3577e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/iic_dvfs		\
3587e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/board		\
359bd57db53SMarek Vasut			-Idrivers/renesas/rcar/cpld/		\
3607e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/avs		\
3617e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/delay		\
3627e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/rom		\
3637e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/scif		\
3647e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/emmc		\
3657e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/pwrc		\
3667e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/io		\
3677e532c4bSJorge Ramirez-Ortiz			-Iplat/renesas/rcar/include/registers	\
3687e532c4bSJorge Ramirez-Ortiz			-Iplat/renesas/rcar/include		\
3697e532c4bSJorge Ramirez-Ortiz			-Iplat/renesas/rcar
3707e532c4bSJorge Ramirez-Ortiz
3710969397fSMarek VasutPLAT_BL_COMMON_SOURCES	:=	drivers/renesas/rcar/iic_dvfs/iic_dvfs.c \
3720969397fSMarek Vasut				plat/renesas/rcar/rcar_common.c
3737e532c4bSJorge Ramirez-Ortiz
3747e532c4bSJorge Ramirez-OrtizRCAR_GIC_SOURCES	:=	drivers/arm/gic/common/gic_common.c	\
3757e532c4bSJorge Ramirez-Ortiz				drivers/arm/gic/v2/gicv2_main.c		\
3767e532c4bSJorge Ramirez-Ortiz				drivers/arm/gic/v2/gicv2_helpers.c	\
3777e532c4bSJorge Ramirez-Ortiz				plat/common/plat_gicv2.c
3787e532c4bSJorge Ramirez-Ortiz
3797e532c4bSJorge Ramirez-OrtizBL2_SOURCES	+=	${RCAR_GIC_SOURCES}				\
3807e532c4bSJorge Ramirez-Ortiz			lib/cpus/aarch64/cortex_a53.S			\
3817e532c4bSJorge Ramirez-Ortiz			lib/cpus/aarch64/cortex_a57.S			\
3821d85c4bdSMarek Vasut			${LIBFDT_SRCS}					\
3837e532c4bSJorge Ramirez-Ortiz			common/desc_image_load.c			\
3847e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/aarch64/platform_common.c	\
3857e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/aarch64/plat_helpers.S	\
3867e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/bl2_interrupt_error.c		\
3877e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/bl2_secure_setting.c		\
3887e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/bl2_plat_setup.c		\
3897e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/plat_storage.c		\
3907e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/bl2_plat_mem_params_desc.c	\
3917e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/plat_image_load.c		\
3927e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/bl2_cpg_init.c		\
3937e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/console/rcar_printf.c	\
3947e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/scif/scif.S		\
3957e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/common.c			\
3967e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/io/io_emmcdrv.c		\
3977e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/io/io_memdrv.c		\
3987e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/io/io_rcar.c		\
3997e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/auth/auth_mod.c		\
4007e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/rpc/rpc_driver.c		\
4017e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/dma/dma_driver.c		\
4027e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/avs/avs_driver.c		\
403c97c5b5eSMarek Vasut			drivers/renesas/rcar/delay/micro_delay.c	\
4047e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/emmc/emmc_interrupt.c	\
4057e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/emmc/emmc_utility.c	\
4067e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/emmc/emmc_mount.c		\
4077e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/emmc/emmc_init.c		\
4087e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/emmc/emmc_read.c		\
4097e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/emmc/emmc_cmd.c		\
4107e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/watchdog/swdt.c		\
4117e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/rom/rom_api.c		\
4127e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/board/board.c		\
4137e532c4bSJorge Ramirez-Ortiz			drivers/io/io_storage.c
4147e532c4bSJorge Ramirez-Ortiz
4157e532c4bSJorge Ramirez-OrtizBL31_SOURCES	+=	${RCAR_GIC_SOURCES}				\
4167e532c4bSJorge Ramirez-Ortiz			lib/cpus/aarch64/cortex_a53.S			\
4177e532c4bSJorge Ramirez-Ortiz			lib/cpus/aarch64/cortex_a57.S			\
4187e532c4bSJorge Ramirez-Ortiz			plat/common/plat_psci_common.c			\
4197e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/plat_topology.c		\
4207e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/aarch64/plat_helpers.S	\
4217e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/aarch64/platform_common.c	\
4227e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/bl31_plat_setup.c		\
4237e532c4bSJorge Ramirez-Ortiz			plat/renesas/rcar/plat_pm.c			\
4247e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/console/rcar_console.S	\
4257e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/console/rcar_printf.c	\
426ca031dffSMarek Vasut			drivers/renesas/rcar/delay/micro_delay.c	\
4277e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/pwrc/call_sram.S		\
4287e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/pwrc/pwrc.c		\
4297e532c4bSJorge Ramirez-Ortiz			drivers/renesas/rcar/common.c			\
4307e532c4bSJorge Ramirez-Ortiz			drivers/arm/cci/cci.c
4317e532c4bSJorge Ramirez-Ortiz
4327e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1)
4337e532c4bSJorge Ramirez-OrtizBL31_SOURCES		+=	drivers/renesas/rcar/cpld/ulcb_cpld.c
4347e532c4bSJorge Ramirez-Ortizendif
4357e532c4bSJorge Ramirez-Ortiz
4367e532c4bSJorge Ramirez-Ortizinclude lib/xlat_tables_v2/xlat_tables.mk
4377e532c4bSJorge Ramirez-Ortizinclude drivers/auth/mbedtls/mbedtls_crypto.mk
4387e532c4bSJorge Ramirez-OrtizPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}
4397e532c4bSJorge Ramirez-Ortiz
4407e532c4bSJorge Ramirez-Ortiz# build the layout images for the bootrom and the necessary srecords
4417e532c4bSJorge Ramirez-Ortizrcar: rcar_layout_tool rcar_srecord
4427e532c4bSJorge Ramirez-Ortizdistclean realclean clean: clean_layout_tool clean_srecord
4437e532c4bSJorge Ramirez-Ortiz
4447e532c4bSJorge Ramirez-Ortiz# layout images
4457e532c4bSJorge Ramirez-OrtizLAYOUT_TOOLPATH ?= tools/renesas/rcar_layout_create
4467e532c4bSJorge Ramirez-Ortiz
4477e532c4bSJorge Ramirez-Ortizclean_layout_tool:
4487e532c4bSJorge Ramirez-Ortiz	@echo "clean layout tool"
4497e532c4bSJorge Ramirez-Ortiz	${Q}${MAKE} -C ${LAYOUT_TOOLPATH} clean
4507e532c4bSJorge Ramirez-Ortiz
4517e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_layout_tool
4527e532c4bSJorge Ramirez-Ortizrcar_layout_tool:
4537e532c4bSJorge Ramirez-Ortiz	@echo "generating layout srecs"
4547e532c4bSJorge Ramirez-Ortiz	${Q}${MAKE} CPPFLAGS="-D=AARCH64" --no-print-directory -C ${LAYOUT_TOOLPATH}
4557e532c4bSJorge Ramirez-Ortiz
4567e532c4bSJorge Ramirez-Ortiz# srecords
4577e532c4bSJorge Ramirez-OrtizSREC_PATH	= ${BUILD_PLAT}
4587e532c4bSJorge Ramirez-OrtizBL2_ELF_SRC	= ${SREC_PATH}/bl2/bl2.elf
4597e532c4bSJorge Ramirez-OrtizBL31_ELF_SRC	= ${SREC_PATH}/bl31/bl31.elf
4607e532c4bSJorge Ramirez-Ortiz
4617e532c4bSJorge Ramirez-Ortizclean_srecord:
4627e532c4bSJorge Ramirez-Ortiz	@echo "clean bl2 and bl31 srecs"
4637e532c4bSJorge Ramirez-Ortiz	rm -f ${SREC_PATH}/bl2.srec ${SREC_PATH}/bl31.srec
4647e532c4bSJorge Ramirez-Ortiz
4657e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_srecord
466539caac9SMarek Vasutrcar_srecord: $(BL2_ELF_SRC) $(BL31_ELF_SRC)
4677e532c4bSJorge Ramirez-Ortiz	@echo "generating srec: ${SREC_PATH}/bl2.srec"
4687e532c4bSJorge Ramirez-Ortiz	$(Q)$(OC) -O srec --srec-forceS3 ${BL2_ELF_SRC}  ${SREC_PATH}/bl2.srec
4697e532c4bSJorge Ramirez-Ortiz	@echo "generating srec: ${SREC_PATH}/bl31.srec"
4707e532c4bSJorge Ramirez-Ortiz	$(Q)$(OC) -O srec --srec-forceS3 ${BL31_ELF_SRC} ${SREC_PATH}/bl31.srec
4717e532c4bSJorge Ramirez-Ortiz
472