xref: /rk3399_ARM-atf/plat/renesas/rcar/platform.mk (revision 579254a8aa4b9cd87ff0b7ba51119205731e0110)
17e532c4bSJorge Ramirez-Ortiz#
2223d989eSMarek Vasut# Copyright (c) 2018-2025, Renesas Electronics Corporation. All rights reserved.
37e532c4bSJorge Ramirez-Ortiz#
47e532c4bSJorge Ramirez-Ortiz# SPDX-License-Identifier: BSD-3-Clause
57e532c4bSJorge Ramirez-Ortiz#
67e532c4bSJorge Ramirez-Ortiz
7011a4c2fSBiju Dasinclude plat/renesas/common/common.mk
87e532c4bSJorge Ramirez-Ortiz
9cfa466abSToshiyuki OgasaharaENABLE_STACK_PROTECTOR	:= strong
10cfa466abSToshiyuki Ogasahara
117e532c4bSJorge Ramirez-Ortizifndef LSI
127e532c4bSJorge Ramirez-Ortiz  $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI")
137e532c4bSJorge Ramirez-Ortizelse
147e532c4bSJorge Ramirez-Ortiz  ifeq (${LSI},AUTO)
157e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_AUTO}
167e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},H3)
177e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_H3}
187e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
197e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
207e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
217e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
227e532c4bSJorge Ramirez-Ortiz    else
237e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
247e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
257e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
267e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},11)
277e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=1
287e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},20)
297e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=10
307e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},30)
317e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=20
327e532c4bSJorge Ramirez-Ortiz      else
337e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
347e532c4bSJorge Ramirez-Ortiz      endif
357e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
367e532c4bSJorge Ramirez-Ortiz    endif
377e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},H3N)
387e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_H3N}
397e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
407e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
417e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
427e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
437e532c4bSJorge Ramirez-Ortiz    else
447e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
457e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},30)
467e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=20
477e532c4bSJorge Ramirez-Ortiz      else
487e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
497e532c4bSJorge Ramirez-Ortiz      endif
507e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
517e532c4bSJorge Ramirez-Ortiz    endif
527e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},M3)
537e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_M3}
547e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
557e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
567e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
577e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
587e532c4bSJorge Ramirez-Ortiz    else
597e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
607e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
617e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
627e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},11)
637e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=1
64845d8fbbSMarek Vasut      else ifeq (${LSI_CUT},13)
65845d8fbbSMarek Vasut        RCAR_LSI_CUT:=3
66845d8fbbSMarek Vasut      else ifeq (${LSI_CUT},30)
67845d8fbbSMarek Vasut        RCAR_LSI_CUT:=20
687e532c4bSJorge Ramirez-Ortiz      else
697e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
707e532c4bSJorge Ramirez-Ortiz      endif
717e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
727e532c4bSJorge Ramirez-Ortiz    endif
737e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},M3N)
747e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_M3N}
757e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
767e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
777e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
787e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
797e532c4bSJorge Ramirez-Ortiz    else
807e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
817e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
827e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
837e532c4bSJorge Ramirez-Ortiz      else ifeq (${LSI_CUT},11)
847e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=1
857e532c4bSJorge Ramirez-Ortiz      else
867e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
877e532c4bSJorge Ramirez-Ortiz      endif
887e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
897e532c4bSJorge Ramirez-Ortiz    endif
907e532c4bSJorge Ramirez-Ortiz  else ifeq (${LSI},E3)
917e532c4bSJorge Ramirez-Ortiz    RCAR_LSI:=${RCAR_E3}
927e532c4bSJorge Ramirez-Ortiz    ifndef LSI_CUT
937e532c4bSJorge Ramirez-Ortiz      # enable compatible function.
947e532c4bSJorge Ramirez-Ortiz      RCAR_LSI_CUT_COMPAT := 1
957e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
967e532c4bSJorge Ramirez-Ortiz    else
977e532c4bSJorge Ramirez-Ortiz      # disable compatible function.
987e532c4bSJorge Ramirez-Ortiz      ifeq (${LSI_CUT},10)
997e532c4bSJorge Ramirez-Ortiz        RCAR_LSI_CUT:=0
100845d8fbbSMarek Vasut      else ifeq (${LSI_CUT},11)
101845d8fbbSMarek Vasut        RCAR_LSI_CUT:=1
1027e532c4bSJorge Ramirez-Ortiz      else
1037e532c4bSJorge Ramirez-Ortiz        $(error "Error: ${LSI_CUT} is not supported.")
1047e532c4bSJorge Ramirez-Ortiz      endif
1057e532c4bSJorge Ramirez-Ortiz      $(eval $(call add_define,RCAR_LSI_CUT))
1067e532c4bSJorge Ramirez-Ortiz    endif
107bfbf5df4SMarek Vasut  else ifeq (${LSI},D3)
108bfbf5df4SMarek Vasut    RCAR_LSI:=${RCAR_D3}
109bfbf5df4SMarek Vasut    ifndef LSI_CUT
110bfbf5df4SMarek Vasut      # enable compatible function.
111bfbf5df4SMarek Vasut      RCAR_LSI_CUT_COMPAT := 1
112bfbf5df4SMarek Vasut      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
113bfbf5df4SMarek Vasut    else
114bfbf5df4SMarek Vasut      # disable compatible function.
115bfbf5df4SMarek Vasut      ifeq (${LSI_CUT},10)
116bfbf5df4SMarek Vasut        RCAR_LSI_CUT:=0
117bfbf5df4SMarek Vasut      else
118bfbf5df4SMarek Vasut        $(error "Error: ${LSI_CUT} is not supported.")
119bfbf5df4SMarek Vasut      endif
120bfbf5df4SMarek Vasut      $(eval $(call add_define,RCAR_LSI_CUT))
121bfbf5df4SMarek Vasut    endif
122b709fe9cSValentine Barshak  else ifeq (${LSI},V3M)
123b709fe9cSValentine Barshak    RCAR_LSI:=${RCAR_V3M}
124b709fe9cSValentine Barshak    ifndef LSI_CUT
125b709fe9cSValentine Barshak      # enable compatible function.
126b709fe9cSValentine Barshak      RCAR_LSI_CUT_COMPAT := 1
127b709fe9cSValentine Barshak      $(eval $(call add_define,RCAR_LSI_CUT_COMPAT))
128b709fe9cSValentine Barshak    else
129b709fe9cSValentine Barshak      # disable compatible function.
130b709fe9cSValentine Barshak      ifeq (${LSI_CUT},10)
131b709fe9cSValentine Barshak        RCAR_LSI_CUT:=0
132b709fe9cSValentine Barshak      endif
133b709fe9cSValentine Barshak      ifeq (${LSI_CUT},20)
134b709fe9cSValentine Barshak        RCAR_LSI_CUT:=10
135b709fe9cSValentine Barshak      endif
136b709fe9cSValentine Barshak      $(eval $(call add_define,RCAR_LSI_CUT))
137b709fe9cSValentine Barshak    endif
1387e532c4bSJorge Ramirez-Ortiz  else
1397e532c4bSJorge Ramirez-Ortiz    $(error "Error: ${LSI} is not supported.")
1407e532c4bSJorge Ramirez-Ortiz  endif
1417e532c4bSJorge Ramirez-Ortiz  $(eval $(call add_define,RCAR_LSI))
1427e532c4bSJorge Ramirez-Ortizendif
1437e532c4bSJorge Ramirez-Ortiz
1446e93392bSJorge Ramirez-Ortiz# lock RPC HYPERFLASH access by default
1456e93392bSJorge Ramirez-Ortiz# unlock to repogram the ATF firmware from u-boot
1466e93392bSJorge Ramirez-Ortizifndef RCAR_RPC_HYPERFLASH_LOCKED
1476e93392bSJorge Ramirez-OrtizRCAR_RPC_HYPERFLASH_LOCKED := 1
1486e93392bSJorge Ramirez-Ortizendif
1496e93392bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_RPC_HYPERFLASH_LOCKED))
1506e93392bSJorge Ramirez-Ortiz
1511a571151SMarek Vasut# Support A/B switching with RPC HYPERFLASH access by default
1521a571151SMarek Vasut# Use together with https://github.com/marex/abloader .
1531a571151SMarek Vasutifndef RCAR_RPC_HYPERFLASH_ABLOADER
1541a571151SMarek VasutRCAR_RPC_HYPERFLASH_ABLOADER := 0
1551a571151SMarek Vasutendif
1561a571151SMarek Vasut$(eval $(call add_define,RCAR_RPC_HYPERFLASH_ABLOADER))
1571a571151SMarek Vasut
1587e532c4bSJorge Ramirez-Ortiz# Process RCAR_SECURE_BOOT flag
1597e532c4bSJorge Ramirez-Ortizifndef RCAR_SECURE_BOOT
1607e532c4bSJorge Ramirez-OrtizRCAR_SECURE_BOOT := 1
1617e532c4bSJorge Ramirez-Ortizendif
1627e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SECURE_BOOT))
1637e532c4bSJorge Ramirez-Ortiz
1647e532c4bSJorge Ramirez-Ortiz# Process RCAR_QOS_TYPE flag
1657e532c4bSJorge Ramirez-Ortizifndef RCAR_QOS_TYPE
1667e532c4bSJorge Ramirez-OrtizRCAR_QOS_TYPE := 0
1677e532c4bSJorge Ramirez-Ortizendif
1687e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_QOS_TYPE))
1697e532c4bSJorge Ramirez-Ortiz
1707e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_SPLIT flag
1717e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_SPLIT
1727e532c4bSJorge Ramirez-OrtizRCAR_DRAM_SPLIT := 0
1737e532c4bSJorge Ramirez-Ortizendif
1747e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_SPLIT))
1757e532c4bSJorge Ramirez-Ortiz
1767e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_EXECUTION_EL flag
1777e532c4bSJorge Ramirez-Ortizifndef RCAR_BL33_EXECUTION_EL
1787e532c4bSJorge Ramirez-OrtizRCAR_BL33_EXECUTION_EL := 0
1797e532c4bSJorge Ramirez-Ortizendif
1807e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_EXECUTION_EL))
1817e532c4bSJorge Ramirez-Ortiz
1827e532c4bSJorge Ramirez-Ortiz# Process RCAR_AVS_SETTING_ENABLE flag
1837e532c4bSJorge Ramirez-Ortizifeq (${RCAR_AVS_SETTING_ENABLE},0)
1847e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 0
1857e532c4bSJorge Ramirez-Ortizelse
1867e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 1
1877e532c4bSJorge Ramirez-Ortizendif
1887e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,AVS_SETTING_ENABLE))
1897e532c4bSJorge Ramirez-Ortiz
1907e532c4bSJorge Ramirez-Ortiz# Process RCAR_LOSSY_ENABLE flag
1917e532c4bSJorge Ramirez-Ortizifndef RCAR_LOSSY_ENABLE
1927e532c4bSJorge Ramirez-OrtizRCAR_LOSSY_ENABLE := 0
1937e532c4bSJorge Ramirez-Ortizendif
1947e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_LOSSY_ENABLE))
1957e532c4bSJorge Ramirez-Ortiz
1967e532c4bSJorge Ramirez-Ortiz# Process LIFEC_DBSC_PROTECT_ENABLE flag
1977e532c4bSJorge Ramirez-Ortizifndef LIFEC_DBSC_PROTECT_ENABLE
1987e532c4bSJorge Ramirez-OrtizLIFEC_DBSC_PROTECT_ENABLE := 1
1997e532c4bSJorge Ramirez-Ortizendif
2007e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,LIFEC_DBSC_PROTECT_ENABLE))
2017e532c4bSJorge Ramirez-Ortiz
2027e532c4bSJorge Ramirez-Ortiz# Process PMIC_ROHM_BD9571 flag
2037e532c4bSJorge Ramirez-Ortizifndef PMIC_ROHM_BD9571
2047e532c4bSJorge Ramirez-OrtizPMIC_ROHM_BD9571 := 1
2057e532c4bSJorge Ramirez-Ortizendif
2067e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_ROHM_BD9571))
2077e532c4bSJorge Ramirez-Ortiz
2087e532c4bSJorge Ramirez-Ortiz# Process PMIC_LEVEL_MODE flag
2097e532c4bSJorge Ramirez-Ortizifndef PMIC_LEVEL_MODE
2107e532c4bSJorge Ramirez-OrtizPMIC_LEVEL_MODE := 1
2117e532c4bSJorge Ramirez-Ortizendif
2127e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_LEVEL_MODE))
2137e532c4bSJorge Ramirez-Ortiz
2147e532c4bSJorge Ramirez-Ortiz# Process RCAR_GEN3_ULCB flag
2157e532c4bSJorge Ramirez-Ortizifndef RCAR_GEN3_ULCB
2167e532c4bSJorge Ramirez-OrtizRCAR_GEN3_ULCB := 0
2177e532c4bSJorge Ramirez-Ortizendif
2187e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1)
2197e532c4bSJorge Ramirez-Ortiz BOARD_DEFAULT := 0x10
2207e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,BOARD_DEFAULT))
2217e532c4bSJorge Ramirez-Ortizendif
2227e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_GEN3_ULCB))
2237e532c4bSJorge Ramirez-Ortiz
2247e532c4bSJorge Ramirez-Ortiz# Process RCAR_REF_INT flag
2257e532c4bSJorge Ramirez-Ortizifndef RCAR_REF_INT
2267e532c4bSJorge Ramirez-OrtizRCAR_REF_INT :=0
2277e532c4bSJorge Ramirez-Ortizendif
2287e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REF_INT))
2297e532c4bSJorge Ramirez-Ortiz
2307e532c4bSJorge Ramirez-Ortiz# Process RCAR_REWT_TRAINING flag
2317e532c4bSJorge Ramirez-Ortizifndef RCAR_REWT_TRAINING
23211d15c3eSToshiyuki OgasaharaRCAR_REWT_TRAINING := 1
2337e532c4bSJorge Ramirez-Ortizendif
2347e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REWT_TRAINING))
2357e532c4bSJorge Ramirez-Ortiz
2367e532c4bSJorge Ramirez-Ortiz# Process RCAR_SYSTEM_SUSPEND flag
2377e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_SUSPEND
2387e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_SUSPEND := 1
2397e532c4bSJorge Ramirez-Ortizendif
2407e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_SUSPEND))
2417e532c4bSJorge Ramirez-Ortiz
2427e532c4bSJorge Ramirez-Ortiz# SYSTEM_SUSPEND requires power control of PMIC etc.
2437e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu,
2447e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary.
2457e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_SUSPEND},1)
2467e532c4bSJorge Ramirez-Ortiz  ifeq (${PMIC_ROHM_BD9571},0)
2477e532c4bSJorge Ramirez-Ortiz    $(error "Error: When you want RCAR_SYSTEM_SUSPEND to be enable, please also set PMIC_ROHM_BD9571 to enable.")
2487e532c4bSJorge Ramirez-Ortiz  endif
2497e532c4bSJorge Ramirez-Ortizendif
2507e532c4bSJorge Ramirez-Ortiz
2517e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_LPDDR4_MEMCONF flag
2527e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_LPDDR4_MEMCONF
2537e532c4bSJorge Ramirez-OrtizRCAR_DRAM_LPDDR4_MEMCONF :=1
2547e532c4bSJorge Ramirez-Ortizendif
2557e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_LPDDR4_MEMCONF))
2567e532c4bSJorge Ramirez-Ortiz
2574379a3e9SToshiyuki Ogasahara# Process RCAR_DRAM_MEMRANK flag
2584379a3e9SToshiyuki Ogasaharaifndef RCAR_DRAM_MEMRANK
2594379a3e9SToshiyuki OgasaharaRCAR_DRAM_MEMRANK :=0
2604379a3e9SToshiyuki Ogasaharaendif
2614379a3e9SToshiyuki Ogasahara$(eval $(call add_define,RCAR_DRAM_MEMRANK))
2624379a3e9SToshiyuki Ogasahara
2637e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMCONF flag
2647e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMCONF
2657e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMCONF :=1
2667e532c4bSJorge Ramirez-Ortizendif
2677e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMCONF))
2687e532c4bSJorge Ramirez-Ortiz
2697e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMDUAL flag
2707e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMDUAL
2717e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMDUAL :=1
2727e532c4bSJorge Ramirez-Ortizendif
2737e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMDUAL))
2747e532c4bSJorge Ramirez-Ortiz
2757e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_ARG0 flag
2767e532c4bSJorge Ramirez-Ortizifdef RCAR_BL33_ARG0
2777e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_ARG0))
2787e532c4bSJorge Ramirez-Ortizendif
2797e532c4bSJorge Ramirez-Ortiz
2807e532c4bSJorge Ramirez-Ortiz#Process RCAR_BL2_DCACHE flag
2817e532c4bSJorge Ramirez-Ortizifndef RCAR_BL2_DCACHE
2827e532c4bSJorge Ramirez-OrtizRCAR_BL2_DCACHE := 0
2837e532c4bSJorge Ramirez-Ortizendif
2847e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL2_DCACHE))
2857e532c4bSJorge Ramirez-Ortiz
2867e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_CHANNEL flag
2877e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_CHANNEL
2887e532c4bSJorge Ramirez-OrtizRCAR_DRAM_CHANNEL :=15
2897e532c4bSJorge Ramirez-Ortizendif
2907e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_CHANNEL))
2917e532c4bSJorge Ramirez-Ortiz
2927e532c4bSJorge Ramirez-Ortiz#Process RCAR_SYSTEM_RESET_KEEPON_DDR flag
2937e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_RESET_KEEPON_DDR
2947e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_RESET_KEEPON_DDR := 0
2957e532c4bSJorge Ramirez-Ortizendif
2967e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_RESET_KEEPON_DDR))
2977e532c4bSJorge Ramirez-Ortiz
298ddf2ca03SMarek Vasutifndef RCAR_GEN3_BL33_GZIP
299ddf2ca03SMarek VasutRCAR_GEN3_BL33_GZIP := 0
300ddf2ca03SMarek Vasutendif
301ddf2ca03SMarek Vasut$(eval $(call add_define,RCAR_GEN3_BL33_GZIP))
302ddf2ca03SMarek Vasut
3037e532c4bSJorge Ramirez-Ortiz# RCAR_SYSTEM_RESET_KEEPON_DDR requires power control of PMIC etc.
3047e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu,
3057e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary.
3067e532c4bSJorge Ramirez-Ortiz# Also, it is necessary to enable RCAR_SYSTEM_SUSPEND.
3077e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_RESET_KEEPON_DDR},1)
3087e532c4bSJorge Ramirez-Ortiz  ifeq (${PMIC_ROHM_BD9571},0)
3097e532c4bSJorge Ramirez-Ortiz    $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set PMIC_ROHM_BD9571 to enable.")
3107e532c4bSJorge Ramirez-Ortiz  endif
3117e532c4bSJorge Ramirez-Ortiz  ifeq (${RCAR_SYSTEM_SUSPEND},0)
3127e532c4bSJorge Ramirez-Ortiz    $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set RCAR_SYSTEM_SUSPEND to enable.")
3137e532c4bSJorge Ramirez-Ortiz  endif
3147e532c4bSJorge Ramirez-Ortizendif
3157e532c4bSJorge Ramirez-Ortiz
316faf5587cSLad Prabhakarinclude drivers/renesas/common/ddr/ddr.mk
317c67703ebSMarek Vasutinclude drivers/renesas/rcar/qos/qos.mk
3182a690b6dSMarek Vasutinclude drivers/renesas/rcar/pfc/pfc.mk
3191d85c4bdSMarek Vasutinclude lib/libfdt/libfdt.mk
3207e532c4bSJorge Ramirez-Ortiz
321*06f8eb57SMarek VasutPLAT_INCLUDES	+=	-Iplat/renesas/rcar/include		\
322*06f8eb57SMarek Vasut			-Iplat/renesas/common/include		\
323*06f8eb57SMarek Vasut			-Idrivers/renesas/common/ddr		\
324c67703ebSMarek Vasut			-Idrivers/renesas/rcar/qos		\
3257e532c4bSJorge Ramirez-Ortiz			-Idrivers/renesas/rcar/board		\
326bd57db53SMarek Vasut			-Idrivers/renesas/rcar/cpld/		\
327662d3cc8SBiju Das			-Idrivers/renesas/common		\
328be92e5a2SBiju Das			-Idrivers/renesas/common/iic_dvfs	\
329b50b6c81SBiju Das			-Idrivers/renesas/common/avs		\
330cdcf1f14SBiju Das			-Idrivers/renesas/common/delay		\
331e17997dfSBiju Das			-Idrivers/renesas/common/rom		\
332865e3474SBiju Das			-Idrivers/renesas/common/scif		\
333b28c29d0SBiju Das			-Idrivers/renesas/common/emmc		\
334c40739a6SBiju Das			-Idrivers/renesas/common/pwrc		\
33592196d4fSMarek Vasut			-Idrivers/renesas/common/timer		\
3362ddb5575SBiju Das			-Idrivers/renesas/common/io
3377e532c4bSJorge Ramirez-Ortiz
338499c2713SBiju DasBL2_SOURCES	+=	plat/renesas/rcar/bl2_plat_setup.c	\
339011a4c2fSBiju Das			drivers/renesas/rcar/board/board.c
3407e532c4bSJorge Ramirez-Ortiz
341ddf2ca03SMarek Vasutifeq (${RCAR_GEN3_BL33_GZIP},1)
342ddf2ca03SMarek Vasutinclude lib/zlib/zlib.mk
343ddf2ca03SMarek Vasut
344ddf2ca03SMarek VasutBL2_SOURCES	+=	common/image_decompress.c               \
345ddf2ca03SMarek Vasut			$(ZLIB_SOURCES)
346ddf2ca03SMarek Vasutendif
347ddf2ca03SMarek Vasut
348cfa466abSToshiyuki Ogasaharaifneq (${ENABLE_STACK_PROTECTOR},0)
349223d989eSMarek VasutBL_COMMON_SOURCES	+=	plat/renesas/common/rcar_stack_protector.c
350cfa466abSToshiyuki Ogasaharaendif
351cfa466abSToshiyuki Ogasahara
3527e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1)
3537e532c4bSJorge Ramirez-OrtizBL31_SOURCES		+=	drivers/renesas/rcar/cpld/ulcb_cpld.c
3547e532c4bSJorge Ramirez-Ortizendif
3557e532c4bSJorge Ramirez-Ortiz
3567e532c4bSJorge Ramirez-Ortiz# build the layout images for the bootrom and the necessary srecords
3577e532c4bSJorge Ramirez-Ortizrcar: rcar_layout_tool rcar_srecord
3587e532c4bSJorge Ramirez-Ortizdistclean realclean clean: clean_layout_tool clean_srecord
3597e532c4bSJorge Ramirez-Ortiz
3607e532c4bSJorge Ramirez-Ortiz# layout images
3617e532c4bSJorge Ramirez-OrtizLAYOUT_TOOLPATH ?= tools/renesas/rcar_layout_create
3627e532c4bSJorge Ramirez-Ortiz
3637e532c4bSJorge Ramirez-Ortizclean_layout_tool:
3647c4e1eeaSChris Kay	$(s)echo "clean layout tool"
3657c4e1eeaSChris Kay	$(q)${MAKE} -C ${LAYOUT_TOOLPATH} clean
3667e532c4bSJorge Ramirez-Ortiz
3677e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_layout_tool
3687e532c4bSJorge Ramirez-Ortizrcar_layout_tool:
3697c4e1eeaSChris Kay	$(s)echo "generating layout srecs"
3707c4e1eeaSChris Kay	$(q)${MAKE} CPPFLAGS="-D=AARCH64" --no-print-directory -C ${LAYOUT_TOOLPATH}
3717e532c4bSJorge Ramirez-Ortiz
3727e532c4bSJorge Ramirez-Ortiz# srecords
3737e532c4bSJorge Ramirez-OrtizSREC_PATH	= ${BUILD_PLAT}
3747e532c4bSJorge Ramirez-OrtizBL2_ELF_SRC	= ${SREC_PATH}/bl2/bl2.elf
3757e532c4bSJorge Ramirez-OrtizBL31_ELF_SRC	= ${SREC_PATH}/bl31/bl31.elf
3767e532c4bSJorge Ramirez-Ortiz
3777e532c4bSJorge Ramirez-Ortizclean_srecord:
3787c4e1eeaSChris Kay	$(s)echo "clean bl2 and bl31 srecs"
3797e532c4bSJorge Ramirez-Ortiz	rm -f ${SREC_PATH}/bl2.srec ${SREC_PATH}/bl31.srec
3807e532c4bSJorge Ramirez-Ortiz
3814d1289bdSChris Kay$(SREC_PATH)/bl2.srec: $(BL2_ELF_SRC)
3827c4e1eeaSChris Kay	$(s)echo "generating srec: $(SREC_PATH)/bl2.srec"
3837c4e1eeaSChris Kay	$(q)$($(ARCH)-oc) -O srec --srec-forceS3 $(BL2_ELF_SRC)  $(SREC_PATH)/bl2.srec
3844d1289bdSChris Kay
3854d1289bdSChris Kay$(SREC_PATH)/bl31.srec: $(BL31_ELF_SRC)
3867c4e1eeaSChris Kay	$(s)echo "generating srec: $(SREC_PATH)/bl31.srec"
3877c4e1eeaSChris Kay	$(q)$($(ARCH)-oc) -O srec --srec-forceS3 $(BL31_ELF_SRC) $(SREC_PATH)/bl31.srec
3884d1289bdSChris Kay
3897e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_srecord
3904d1289bdSChris Kayrcar_srecord: $(SREC_PATH)/bl2.srec $(SREC_PATH)/bl31.srec
391