xref: /rk3399_ARM-atf/tools/renesas/rcar_layout_create/makefile (revision cc277de81692cf72f067354ada6e84f5e996f6b8)
17e532c4bSJorge Ramirez-Ortiz#
27e532c4bSJorge Ramirez-Ortiz# Copyright (c) 2015-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
7*cc277de8SChris Kaytoolchains := aarch64
8*cc277de8SChris Kay
9*cc277de8SChris Kayinclude ../../../make_helpers/toolchain.mk
10*cc277de8SChris Kay
117e532c4bSJorge Ramirez-Ortiz###################################################
127e532c4bSJorge Ramirez-Ortiz# makefile
137e532c4bSJorge Ramirez-Ortiz###################################################
147e532c4bSJorge Ramirez-Ortiz
157e532c4bSJorge Ramirez-Ortiz#output file name
167e532c4bSJorge Ramirez-OrtizFILE_NAME_SA0   = bootparam_sa0
177e532c4bSJorge Ramirez-OrtizFILE_NAME_SA6   = cert_header_sa6
187e532c4bSJorge Ramirez-Ortiz
197e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf
207e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf
217e532c4bSJorge Ramirez-Ortiz
227e532c4bSJorge Ramirez-Ortiz#object file name
237e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA0 =	sa0.o
247e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA6 =	sa6.o
257e532c4bSJorge Ramirez-Ortiz
267e532c4bSJorge Ramirez-Ortiz#linker script name
277e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA0 = sa0.ld.S
287e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA6 = sa6.ld.S
297e532c4bSJorge Ramirez-Ortiz
307e532c4bSJorge Ramirez-Ortiz###################################################
317e532c4bSJorge Ramirez-Ortiz# Convenience function for adding build definitions
327e532c4bSJorge Ramirez-Ortiz# $(eval $(call add_define,FOO)) will have:
337e532c4bSJorge Ramirez-Ortiz# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise
347e532c4bSJorge Ramirez-Ortizdefine add_define
357e532c4bSJorge Ramirez-OrtizDEFINES			+=	-D$(1)$(if $(value $(1)),=$(value $(1)),)
367e532c4bSJorge Ramirez-Ortizendef
377e532c4bSJorge Ramirez-Ortiz
387e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA0_SIZE flag
397e532c4bSJorge Ramirez-Ortizifndef RCAR_SA0_SIZE
407e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1
417e532c4bSJorge Ramirez-Ortizelse
427e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA0_SIZE},0)
437e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 0
447e532c4bSJorge Ramirez-Ortizelse
457e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1
467e532c4bSJorge Ramirez-Ortizendif
477e532c4bSJorge Ramirez-Ortizendif
487e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA0_SIZE))
497e532c4bSJorge Ramirez-Ortiz
507e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA6_TYPE flag
517e532c4bSJorge Ramirez-Ortizifndef RCAR_SA6_TYPE
527e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0
537e532c4bSJorge Ramirez-Ortizelse
547e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA6_TYPE},0)
557e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0
567e532c4bSJorge Ramirez-Ortizelse
577e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 1
587e532c4bSJorge Ramirez-Ortizendif
597e532c4bSJorge Ramirez-Ortizendif
607e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA6_TYPE))
617e532c4bSJorge Ramirez-Ortiz
62bfbf5df4SMarek Vasut# Handle different VMA adjustment on D3
63bfbf5df4SMarek Vasutifeq (${RCAR_LSI},${RCAR_D3})
64bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6320000
65bfbf5df4SMarek Vasutelse
66bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6312000
67bfbf5df4SMarek Vasutendif
68bfbf5df4SMarek Vasut$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
69bfbf5df4SMarek Vasut
70bfbf5df4SMarek Vasut
717e532c4bSJorge Ramirez-Ortiz###################################################
727e532c4bSJorge Ramirez-Ortiz
737e532c4bSJorge Ramirez-Ortiz#c compiler
747e532c4bSJorge Ramirez-OrtizCC = $(CROSS_COMPILE)gcc
757e532c4bSJorge Ramirez-OrtizCFLAGS += ${DEFINES}
767e532c4bSJorge Ramirez-OrtizCFLAGS += -I../../include/lib/stdlib
777e532c4bSJorge Ramirez-Ortiz
787e532c4bSJorge Ramirez-Ortiz#Linker
797e532c4bSJorge Ramirez-OrtizLD = $(CROSS_COMPILE)ld
807e532c4bSJorge Ramirez-Ortiz
817e532c4bSJorge Ramirez-Ortiz#objcopy
827e532c4bSJorge Ramirez-Ortizobjcopy = $(CROSS_COMPILE)objcopy
837e532c4bSJorge Ramirez-Ortiz
847e532c4bSJorge Ramirez-Ortiz#clean
857e532c4bSJorge Ramirez-OrtizCL = rm -f
867e532c4bSJorge Ramirez-Ortiz
877e532c4bSJorge Ramirez-Ortiz###################################################
887e532c4bSJorge Ramirez-Ortiz.SUFFIXES : .s .c .o
897e532c4bSJorge Ramirez-Ortiz
907e532c4bSJorge Ramirez-Ortiz###################################################
917e532c4bSJorge Ramirez-Ortiz# command
927e532c4bSJorge Ramirez-Ortiz
937e532c4bSJorge Ramirez-Ortiz.PHONY: all
947e532c4bSJorge Ramirez-Ortizall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6)
957e532c4bSJorge Ramirez-Ortiz###################################################
967e532c4bSJorge Ramirez-Ortiz# Linker
977e532c4bSJorge Ramirez-Ortiz###################################################
987e532c4bSJorge Ramirez-Ortiz$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0)
997e532c4bSJorge Ramirez-Ortiz	$(LD) $(OBJ_FILE_SA0)		 	\
1007e532c4bSJorge Ramirez-Ortiz	-T $(MEMORY_DEF_SA0)			\
1017e532c4bSJorge Ramirez-Ortiz	-o $(OUTPUT_FILE_SA0)			\
1027e532c4bSJorge Ramirez-Ortiz	-Map $(FILE_NAME_SA0).map 		\
1037e532c4bSJorge Ramirez-Ortiz
104bfbf5df4SMarek Vasut	$(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
105bfbf5df4SMarek Vasut	$(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin
1067e532c4bSJorge Ramirez-Ortiz
1077e532c4bSJorge Ramirez-Ortiz$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6)
1087e532c4bSJorge Ramirez-Ortiz	$(LD) $(OBJ_FILE_SA6)		 	\
1097e532c4bSJorge Ramirez-Ortiz	-T $(MEMORY_DEF_SA6)			\
1107e532c4bSJorge Ramirez-Ortiz	-o $(OUTPUT_FILE_SA6)			\
1117e532c4bSJorge Ramirez-Ortiz	-Map $(FILE_NAME_SA6).map 		\
1127e532c4bSJorge Ramirez-Ortiz
113bfbf5df4SMarek Vasut	$(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
114bfbf5df4SMarek Vasut	$(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin
1157e532c4bSJorge Ramirez-Ortiz
1167e532c4bSJorge Ramirez-Ortiz###################################################
1177e532c4bSJorge Ramirez-Ortiz# Compile
1187e532c4bSJorge Ramirez-Ortiz###################################################
1197e532c4bSJorge Ramirez-Ortiz
120e068a7caSChris Kay%.o: %.c
121e068a7caSChris Kay	$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
1227e532c4bSJorge Ramirez-Ortiz
1237e532c4bSJorge Ramirez-Ortiz.PHONY: clean
1247e532c4bSJorge Ramirez-Ortizclean:
1257e532c4bSJorge Ramirez-Ortiz	$(CL)  *.bin *.map *.srec *.elf *.o
126