16369498cSBiju Das# 23ed72444SChris 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 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)/ 102*fa0df1bdSLad 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)/ 111*fa0df1bdSLad 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 117f4dd18c2SChris Kay%.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