xref: /rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile (revision 249fb06c3df6cd40ff2566f29c672366c0f0f863)
16369498cSBiju Das#
2*a4ac07c7SChris Kay# Copyright (c) 2024-2025, 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
10f4dd18c2SChris Kayinclude ../../../make_helpers/build-rules.mk
117c4e1eeaSChris Kayinclude ../../../make_helpers/common.mk
12cc277de8SChris Kayinclude ../../../make_helpers/toolchain.mk
13cc277de8SChris Kay
146369498cSBiju Das###################################################
156369498cSBiju Das# makefile
166369498cSBiju Das###################################################
176369498cSBiju Das
186369498cSBiju Das#output file name
196369498cSBiju DasFILE_NAME_SA0 = bootparam_sa0
206369498cSBiju DasFILE_NAME_SA6 = cert_header_sa6
216369498cSBiju Das
226369498cSBiju DasOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf
236369498cSBiju DasOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf
246369498cSBiju Das
256369498cSBiju Das#object file name
266369498cSBiju DasOBJ_FILE_SA0 = sa0.o
276369498cSBiju DasOBJ_FILE_SA6 = sa6.o
286369498cSBiju Das
296369498cSBiju Das#linker script name
306369498cSBiju DasMEMORY_DEF_SA0 = sa0.ld.S
316369498cSBiju DasMEMORY_DEF_SA6 = sa6.ld.S
326369498cSBiju Das
336369498cSBiju Das###################################################
346369498cSBiju Das# Convenience function for adding build definitions
356369498cSBiju Das# $(eval $(call add_define,FOO)) will have:
366369498cSBiju Das# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise
376369498cSBiju Dasdefine add_define
386369498cSBiju DasDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),)
396369498cSBiju Dasendef
406369498cSBiju Das
416369498cSBiju Das# Process RCAR_SA0_SIZE flag
426369498cSBiju Dasifndef RCAR_SA0_SIZE
436369498cSBiju DasRCAR_SA0_SIZE := 1
446369498cSBiju Daselse
456369498cSBiju Dasifeq (${RCAR_SA0_SIZE},0)
466369498cSBiju DasRCAR_SA0_SIZE := 0
476369498cSBiju Daselse
486369498cSBiju DasRCAR_SA0_SIZE := 1
496369498cSBiju Dasendif
506369498cSBiju Dasendif
516369498cSBiju Das$(eval $(call add_define,RCAR_SA0_SIZE))
526369498cSBiju Das
536369498cSBiju Das# Process RCAR_SA6_TYPE flag
546369498cSBiju Dasifndef RCAR_SA6_TYPE
556369498cSBiju DasRCAR_SA6_TYPE := 0
566369498cSBiju Daselse
576369498cSBiju Dasifeq (${RCAR_SA6_TYPE},0)
586369498cSBiju DasRCAR_SA6_TYPE := 0
596369498cSBiju Daselse
606369498cSBiju DasRCAR_SA6_TYPE := 1
616369498cSBiju Dasendif
626369498cSBiju Dasendif
636369498cSBiju Das$(eval $(call add_define,RCAR_SA6_TYPE))
646369498cSBiju Das
656369498cSBiju DasRCAR_VMA_ADJUST_ADDR := 0xE6320000
666369498cSBiju Das$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
676369498cSBiju Das
686369498cSBiju Das
696369498cSBiju Das###################################################
706369498cSBiju Das
716369498cSBiju Das#c compiler
726369498cSBiju DasCFLAGS += ${DEFINES}
736369498cSBiju DasCFLAGS += -nostdinc \
746369498cSBiju Das	  -I../../../include/lib/libc \
756369498cSBiju Das	  -I../../../include/lib/libc/aarch64
766369498cSBiju Das
776369498cSBiju Das#clean
786369498cSBiju DasCL = rm -f
796369498cSBiju Das
806369498cSBiju Das###################################################
816369498cSBiju Das.SUFFIXES : .s .c .o
826369498cSBiju Das
836369498cSBiju Das###################################################
846369498cSBiju Das# command
856369498cSBiju Das
866369498cSBiju Das.PHONY: all
873ed72444SChris Kay
883ed72444SChris Kayall: $(FILE_NAME_SA0).srec $(FILE_NAME_SA0).bin
893ed72444SChris Kayall: $(FILE_NAME_SA6).srec $(FILE_NAME_SA6).bin
903ed72444SChris Kay
916369498cSBiju Das###################################################
926369498cSBiju Das# Linker
936369498cSBiju Das###################################################
946369498cSBiju Das
95f4dd18c2SChris Kay$(FILE_NAME_SA0).srec: $(OUTPUT_FILE_SA0) | $$(@D)/
96ffb77421SChris Kay	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
973ed72444SChris Kay
98f4dd18c2SChris Kay$(FILE_NAME_SA0).bin: $(OUTPUT_FILE_SA0) | $$(@D)/
99ffb77421SChris Kay	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin
1006369498cSBiju Das
101f4dd18c2SChris Kay$(OUTPUT_FILE_SA0): $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) | $$(@D)/
102fa0df1bdSLad Prabhakar	$(aarch64-ld) $(OBJ_FILE_SA0) -nostdlib -static -Wl,--build-id=none -T $(MEMORY_DEF_SA0) -o $(OUTPUT_FILE_SA0) -Wl,-Map $(FILE_NAME_SA0).map
1036369498cSBiju Das
104f4dd18c2SChris Kay$(FILE_NAME_SA6).srec: $(OUTPUT_FILE_SA6) | $$(@D)/
105ffb77421SChris Kay	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
1063ed72444SChris Kay
107f4dd18c2SChris Kay$(FILE_NAME_SA6).bin: $(OUTPUT_FILE_SA6) | $$(@D)/
108ffb77421SChris Kay	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin
1096369498cSBiju Das
110f4dd18c2SChris Kay$(OUTPUT_FILE_SA6): $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) | $$(@D)/
111fa0df1bdSLad Prabhakar	$(aarch64-ld) $(OBJ_FILE_SA6) -nostdlib -static -Wl,--build-id=none -T $(MEMORY_DEF_SA6) -o $(OUTPUT_FILE_SA6) -Wl,-Map $(FILE_NAME_SA6).map
1123ed72444SChris Kay
1136369498cSBiju Das###################################################
1146369498cSBiju Das# Compile
1156369498cSBiju Das###################################################
1166369498cSBiju Das
117*a4ac07c7SChris Kay$(OBJ_FILE_SA0) $(OBJ_FILE_SA6): %.o: %.c | $$(@D)/
118ffb77421SChris Kay	$(aarch64-cc) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
1196369498cSBiju Das
1206369498cSBiju Das.PHONY: clean
1216369498cSBiju Dasclean:
1226369498cSBiju Das	$(CL)  *.bin *.map *.srec *.elf *.o
123