xref: /rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile (revision 2f1c5e7eb1775b252fa4998e10093b8ac34ca699)
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
9cc277de8SChris Kayinclude ../../../make_helpers/toolchain.mk
10cc277de8SChris Kay
116369498cSBiju Das###################################################
126369498cSBiju Das# makefile
136369498cSBiju Das###################################################
146369498cSBiju Das
156369498cSBiju Das#output file name
166369498cSBiju DasFILE_NAME_SA0 = bootparam_sa0
176369498cSBiju DasFILE_NAME_SA6 = cert_header_sa6
186369498cSBiju Das
196369498cSBiju DasOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf
206369498cSBiju DasOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf
216369498cSBiju Das
226369498cSBiju Das#object file name
236369498cSBiju DasOBJ_FILE_SA0 = sa0.o
246369498cSBiju DasOBJ_FILE_SA6 = sa6.o
256369498cSBiju Das
266369498cSBiju Das#linker script name
276369498cSBiju DasMEMORY_DEF_SA0 = sa0.ld.S
286369498cSBiju DasMEMORY_DEF_SA6 = sa6.ld.S
296369498cSBiju Das
306369498cSBiju Das###################################################
316369498cSBiju Das# Convenience function for adding build definitions
326369498cSBiju Das# $(eval $(call add_define,FOO)) will have:
336369498cSBiju Das# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise
346369498cSBiju Dasdefine add_define
356369498cSBiju DasDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),)
366369498cSBiju Dasendef
376369498cSBiju Das
386369498cSBiju Das# Process RCAR_SA0_SIZE flag
396369498cSBiju Dasifndef RCAR_SA0_SIZE
406369498cSBiju DasRCAR_SA0_SIZE := 1
416369498cSBiju Daselse
426369498cSBiju Dasifeq (${RCAR_SA0_SIZE},0)
436369498cSBiju DasRCAR_SA0_SIZE := 0
446369498cSBiju Daselse
456369498cSBiju DasRCAR_SA0_SIZE := 1
466369498cSBiju Dasendif
476369498cSBiju Dasendif
486369498cSBiju Das$(eval $(call add_define,RCAR_SA0_SIZE))
496369498cSBiju Das
506369498cSBiju Das# Process RCAR_SA6_TYPE flag
516369498cSBiju Dasifndef RCAR_SA6_TYPE
526369498cSBiju DasRCAR_SA6_TYPE := 0
536369498cSBiju Daselse
546369498cSBiju Dasifeq (${RCAR_SA6_TYPE},0)
556369498cSBiju DasRCAR_SA6_TYPE := 0
566369498cSBiju Daselse
576369498cSBiju DasRCAR_SA6_TYPE := 1
586369498cSBiju Dasendif
596369498cSBiju Dasendif
606369498cSBiju Das$(eval $(call add_define,RCAR_SA6_TYPE))
616369498cSBiju Das
626369498cSBiju DasRCAR_VMA_ADJUST_ADDR := 0xE6320000
636369498cSBiju Das$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
646369498cSBiju Das
656369498cSBiju Das
666369498cSBiju Das###################################################
676369498cSBiju Das
686369498cSBiju Das#c compiler
696369498cSBiju DasCFLAGS += ${DEFINES}
706369498cSBiju DasCFLAGS += -nostdinc \
716369498cSBiju Das	  -I../../../include/lib/libc \
726369498cSBiju Das	  -I../../../include/lib/libc/aarch64
736369498cSBiju Das
746369498cSBiju Das#clean
756369498cSBiju DasCL = rm -f
766369498cSBiju Das
776369498cSBiju Das###################################################
786369498cSBiju Das.SUFFIXES : .s .c .o
796369498cSBiju Das
806369498cSBiju Das###################################################
816369498cSBiju Das# command
826369498cSBiju Das
836369498cSBiju Das.PHONY: all
846369498cSBiju Dasall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6)
856369498cSBiju Das###################################################
866369498cSBiju Das# Linker
876369498cSBiju Das###################################################
886369498cSBiju Das$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0)
89*2f1c5e7eSChris Kay	$(aarch64-ld) $(OBJ_FILE_SA0) -nostdlib	\
906369498cSBiju Das	-T $(MEMORY_DEF_SA0)			\
916369498cSBiju Das	-o $(OUTPUT_FILE_SA0)			\
92*2f1c5e7eSChris Kay	-Wl,-Map $(FILE_NAME_SA0).map 		\
936369498cSBiju Das
94ffb77421SChris Kay	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
95ffb77421SChris Kay	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin
966369498cSBiju Das
976369498cSBiju Das$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6)
98*2f1c5e7eSChris Kay	$(aarch64-ld) $(OBJ_FILE_SA6) -nostdlib	\
996369498cSBiju Das	-T $(MEMORY_DEF_SA6)			\
1006369498cSBiju Das	-o $(OUTPUT_FILE_SA6)			\
101*2f1c5e7eSChris Kay	-Wl,-Map $(FILE_NAME_SA6).map 		\
1026369498cSBiju Das
103ffb77421SChris Kay	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
104ffb77421SChris Kay	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin
1056369498cSBiju Das
1066369498cSBiju Das###################################################
1076369498cSBiju Das# Compile
1086369498cSBiju Das###################################################
1096369498cSBiju Das
110e068a7caSChris Kay%.o: %.c
111ffb77421SChris Kay	$(aarch64-cc) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
1126369498cSBiju Das
1136369498cSBiju Das.PHONY: clean
1146369498cSBiju Dasclean:
1156369498cSBiju Das	$(CL)  *.bin *.map *.srec *.elf *.o
116