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 7*cc277de8SChris Kaytoolchains := aarch64 8*cc277de8SChris Kay 9*cc277de8SChris Kayinclude ../../../make_helpers/toolchain.mk 10*cc277de8SChris 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 DasCC = $(CROSS_COMPILE)gcc 706369498cSBiju DasCFLAGS += ${DEFINES} 716369498cSBiju DasCFLAGS += -nostdinc \ 726369498cSBiju Das -I../../../include/lib/libc \ 736369498cSBiju Das -I../../../include/lib/libc/aarch64 746369498cSBiju Das 756369498cSBiju Das#Linker 766369498cSBiju DasLD = $(CROSS_COMPILE)ld 776369498cSBiju Das 786369498cSBiju Das#objcopy 796369498cSBiju Dasobjcopy = $(CROSS_COMPILE)objcopy 806369498cSBiju Das 816369498cSBiju Das#clean 826369498cSBiju DasCL = rm -f 836369498cSBiju Das 846369498cSBiju Das################################################### 856369498cSBiju Das.SUFFIXES : .s .c .o 866369498cSBiju Das 876369498cSBiju Das################################################### 886369498cSBiju Das# command 896369498cSBiju Das 906369498cSBiju Das.PHONY: all 916369498cSBiju Dasall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6) 926369498cSBiju Das################################################### 936369498cSBiju Das# Linker 946369498cSBiju Das################################################### 956369498cSBiju Das$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) 966369498cSBiju Das $(LD) $(OBJ_FILE_SA0) \ 976369498cSBiju Das -T $(MEMORY_DEF_SA0) \ 986369498cSBiju Das -o $(OUTPUT_FILE_SA0) \ 996369498cSBiju Das -Map $(FILE_NAME_SA0).map \ 1006369498cSBiju Das 1016369498cSBiju Das $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec 1026369498cSBiju Das $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin 1036369498cSBiju Das 1046369498cSBiju Das$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) 1056369498cSBiju Das $(LD) $(OBJ_FILE_SA6) \ 1066369498cSBiju Das -T $(MEMORY_DEF_SA6) \ 1076369498cSBiju Das -o $(OUTPUT_FILE_SA6) \ 1086369498cSBiju Das -Map $(FILE_NAME_SA6).map \ 1096369498cSBiju Das 1106369498cSBiju Das $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec 1116369498cSBiju Das $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin 1126369498cSBiju Das 1136369498cSBiju Das################################################### 1146369498cSBiju Das# Compile 1156369498cSBiju Das################################################### 1166369498cSBiju Das 117e068a7caSChris Kay%.o: %.c 118e068a7caSChris Kay $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< 1196369498cSBiju Das 1206369498cSBiju Das.PHONY: clean 1216369498cSBiju Dasclean: 1226369498cSBiju Das $(CL) *.bin *.map *.srec *.elf *.o 123