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