xref: /rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile (revision 7c4e1eea61a32291a6640070418e07ab98b42442)
16369498cSBiju Das#
26369498cSBiju Das# Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
36369498cSBiju Das#
46369498cSBiju Das# SPDX-License-Identifier: BSD-3-Clause
56369498cSBiju Das#
66369498cSBiju Das
7cc277de8SChris Kaytoolchains := aarch64
8cc277de8SChris Kay
9*7c4e1eeaSChris Kayinclude ../../../make_helpers/common.mk
10cc277de8SChris Kayinclude ../../../make_helpers/toolchain.mk
11cc277de8SChris Kay
126369498cSBiju Das###################################################
136369498cSBiju Das# makefile
146369498cSBiju Das###################################################
156369498cSBiju Das
166369498cSBiju Das#output file name
176369498cSBiju DasFILE_NAME_SA0 = bootparam_sa0
186369498cSBiju DasFILE_NAME_SA6 = cert_header_sa6
196369498cSBiju Das
206369498cSBiju DasOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf
216369498cSBiju DasOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf
226369498cSBiju Das
236369498cSBiju Das#object file name
246369498cSBiju DasOBJ_FILE_SA0 = sa0.o
256369498cSBiju DasOBJ_FILE_SA6 = sa6.o
266369498cSBiju Das
276369498cSBiju Das#linker script name
286369498cSBiju DasMEMORY_DEF_SA0 = sa0.ld.S
296369498cSBiju DasMEMORY_DEF_SA6 = sa6.ld.S
306369498cSBiju Das
316369498cSBiju Das###################################################
326369498cSBiju Das# Convenience function for adding build definitions
336369498cSBiju Das# $(eval $(call add_define,FOO)) will have:
346369498cSBiju Das# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise
356369498cSBiju Dasdefine add_define
366369498cSBiju DasDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),)
376369498cSBiju Dasendef
386369498cSBiju Das
396369498cSBiju Das# Process RCAR_SA0_SIZE flag
406369498cSBiju Dasifndef RCAR_SA0_SIZE
416369498cSBiju DasRCAR_SA0_SIZE := 1
426369498cSBiju Daselse
436369498cSBiju Dasifeq (${RCAR_SA0_SIZE},0)
446369498cSBiju DasRCAR_SA0_SIZE := 0
456369498cSBiju Daselse
466369498cSBiju DasRCAR_SA0_SIZE := 1
476369498cSBiju Dasendif
486369498cSBiju Dasendif
496369498cSBiju Das$(eval $(call add_define,RCAR_SA0_SIZE))
506369498cSBiju Das
516369498cSBiju Das# Process RCAR_SA6_TYPE flag
526369498cSBiju Dasifndef RCAR_SA6_TYPE
536369498cSBiju DasRCAR_SA6_TYPE := 0
546369498cSBiju Daselse
556369498cSBiju Dasifeq (${RCAR_SA6_TYPE},0)
566369498cSBiju DasRCAR_SA6_TYPE := 0
576369498cSBiju Daselse
586369498cSBiju DasRCAR_SA6_TYPE := 1
596369498cSBiju Dasendif
606369498cSBiju Dasendif
616369498cSBiju Das$(eval $(call add_define,RCAR_SA6_TYPE))
626369498cSBiju Das
636369498cSBiju DasRCAR_VMA_ADJUST_ADDR := 0xE6320000
646369498cSBiju Das$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
656369498cSBiju Das
666369498cSBiju Das
676369498cSBiju Das###################################################
686369498cSBiju Das
696369498cSBiju Das#c compiler
706369498cSBiju DasCFLAGS += ${DEFINES}
716369498cSBiju DasCFLAGS += -nostdinc \
726369498cSBiju Das	  -I../../../include/lib/libc \
736369498cSBiju Das	  -I../../../include/lib/libc/aarch64
746369498cSBiju Das
756369498cSBiju Das#clean
766369498cSBiju DasCL = rm -f
776369498cSBiju Das
786369498cSBiju Das###################################################
796369498cSBiju Das.SUFFIXES : .s .c .o
806369498cSBiju Das
816369498cSBiju Das###################################################
826369498cSBiju Das# command
836369498cSBiju Das
846369498cSBiju Das.PHONY: all
856369498cSBiju Dasall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6)
866369498cSBiju Das###################################################
876369498cSBiju Das# Linker
886369498cSBiju Das###################################################
896369498cSBiju Das$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0)
902f1c5e7eSChris Kay	$(aarch64-ld) $(OBJ_FILE_SA0) -nostdlib	\
916369498cSBiju Das	-T $(MEMORY_DEF_SA0)			\
926369498cSBiju Das	-o $(OUTPUT_FILE_SA0)			\
932f1c5e7eSChris Kay	-Wl,-Map $(FILE_NAME_SA0).map 		\
946369498cSBiju Das
95ffb77421SChris Kay	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
96ffb77421SChris Kay	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin
976369498cSBiju Das
986369498cSBiju Das$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6)
992f1c5e7eSChris Kay	$(aarch64-ld) $(OBJ_FILE_SA6) -nostdlib	\
1006369498cSBiju Das	-T $(MEMORY_DEF_SA6)			\
1016369498cSBiju Das	-o $(OUTPUT_FILE_SA6)			\
1022f1c5e7eSChris Kay	-Wl,-Map $(FILE_NAME_SA6).map 		\
1036369498cSBiju Das
104ffb77421SChris Kay	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
105ffb77421SChris Kay	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin
1066369498cSBiju Das
1076369498cSBiju Das###################################################
1086369498cSBiju Das# Compile
1096369498cSBiju Das###################################################
1106369498cSBiju Das
111e068a7caSChris Kay%.o: %.c
112ffb77421SChris Kay	$(aarch64-cc) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
1136369498cSBiju Das
1146369498cSBiju Das.PHONY: clean
1156369498cSBiju Dasclean:
1166369498cSBiju Das	$(CL)  *.bin *.map *.srec *.elf *.o
117