1*6369498cSBiju Das# 2*6369498cSBiju Das# Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved. 3*6369498cSBiju Das# 4*6369498cSBiju Das# SPDX-License-Identifier: BSD-3-Clause 5*6369498cSBiju Das# 6*6369498cSBiju Das 7*6369498cSBiju Das################################################### 8*6369498cSBiju Das# makefile 9*6369498cSBiju Das################################################### 10*6369498cSBiju Das 11*6369498cSBiju Das#output file name 12*6369498cSBiju DasFILE_NAME_SA0 = bootparam_sa0 13*6369498cSBiju DasFILE_NAME_SA6 = cert_header_sa6 14*6369498cSBiju Das 15*6369498cSBiju DasOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf 16*6369498cSBiju DasOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf 17*6369498cSBiju Das 18*6369498cSBiju Das#object file name 19*6369498cSBiju DasOBJ_FILE_SA0 = sa0.o 20*6369498cSBiju DasOBJ_FILE_SA6 = sa6.o 21*6369498cSBiju Das 22*6369498cSBiju Das#linker script name 23*6369498cSBiju DasMEMORY_DEF_SA0 = sa0.ld.S 24*6369498cSBiju DasMEMORY_DEF_SA6 = sa6.ld.S 25*6369498cSBiju Das 26*6369498cSBiju Das################################################### 27*6369498cSBiju Das# Convenience function for adding build definitions 28*6369498cSBiju Das# $(eval $(call add_define,FOO)) will have: 29*6369498cSBiju Das# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise 30*6369498cSBiju Dasdefine add_define 31*6369498cSBiju DasDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) 32*6369498cSBiju Dasendef 33*6369498cSBiju Das 34*6369498cSBiju Das# Process RCAR_SA0_SIZE flag 35*6369498cSBiju Dasifndef RCAR_SA0_SIZE 36*6369498cSBiju DasRCAR_SA0_SIZE := 1 37*6369498cSBiju Daselse 38*6369498cSBiju Dasifeq (${RCAR_SA0_SIZE},0) 39*6369498cSBiju DasRCAR_SA0_SIZE := 0 40*6369498cSBiju Daselse 41*6369498cSBiju DasRCAR_SA0_SIZE := 1 42*6369498cSBiju Dasendif 43*6369498cSBiju Dasendif 44*6369498cSBiju Das$(eval $(call add_define,RCAR_SA0_SIZE)) 45*6369498cSBiju Das 46*6369498cSBiju Das# Process RCAR_SA6_TYPE flag 47*6369498cSBiju Dasifndef RCAR_SA6_TYPE 48*6369498cSBiju DasRCAR_SA6_TYPE := 0 49*6369498cSBiju Daselse 50*6369498cSBiju Dasifeq (${RCAR_SA6_TYPE},0) 51*6369498cSBiju DasRCAR_SA6_TYPE := 0 52*6369498cSBiju Daselse 53*6369498cSBiju DasRCAR_SA6_TYPE := 1 54*6369498cSBiju Dasendif 55*6369498cSBiju Dasendif 56*6369498cSBiju Das$(eval $(call add_define,RCAR_SA6_TYPE)) 57*6369498cSBiju Das 58*6369498cSBiju DasRCAR_VMA_ADJUST_ADDR := 0xE6320000 59*6369498cSBiju Das$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR)) 60*6369498cSBiju Das 61*6369498cSBiju Das 62*6369498cSBiju Das################################################### 63*6369498cSBiju Das 64*6369498cSBiju Das#c compiler 65*6369498cSBiju DasCC = $(CROSS_COMPILE)gcc 66*6369498cSBiju DasCFLAGS += ${DEFINES} 67*6369498cSBiju DasCFLAGS += -nostdinc \ 68*6369498cSBiju Das -I../../../include/lib/libc \ 69*6369498cSBiju Das -I../../../include/lib/libc/aarch64 70*6369498cSBiju Das 71*6369498cSBiju Das#Linker 72*6369498cSBiju DasLD = $(CROSS_COMPILE)ld 73*6369498cSBiju Das 74*6369498cSBiju Das#objcopy 75*6369498cSBiju Dasobjcopy = $(CROSS_COMPILE)objcopy 76*6369498cSBiju Das 77*6369498cSBiju Das#clean 78*6369498cSBiju DasCL = rm -f 79*6369498cSBiju Das 80*6369498cSBiju Das################################################### 81*6369498cSBiju Das.SUFFIXES : .s .c .o 82*6369498cSBiju Das 83*6369498cSBiju Das################################################### 84*6369498cSBiju Das# command 85*6369498cSBiju Das 86*6369498cSBiju Das.PHONY: all 87*6369498cSBiju Dasall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6) 88*6369498cSBiju Das################################################### 89*6369498cSBiju Das# Linker 90*6369498cSBiju Das################################################### 91*6369498cSBiju Das$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) 92*6369498cSBiju Das $(LD) $(OBJ_FILE_SA0) \ 93*6369498cSBiju Das -T $(MEMORY_DEF_SA0) \ 94*6369498cSBiju Das -o $(OUTPUT_FILE_SA0) \ 95*6369498cSBiju Das -Map $(FILE_NAME_SA0).map \ 96*6369498cSBiju Das 97*6369498cSBiju Das $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec 98*6369498cSBiju Das $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin 99*6369498cSBiju Das 100*6369498cSBiju Das$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) 101*6369498cSBiju Das $(LD) $(OBJ_FILE_SA6) \ 102*6369498cSBiju Das -T $(MEMORY_DEF_SA6) \ 103*6369498cSBiju Das -o $(OUTPUT_FILE_SA6) \ 104*6369498cSBiju Das -Map $(FILE_NAME_SA6).map \ 105*6369498cSBiju Das 106*6369498cSBiju Das $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec 107*6369498cSBiju Das $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin 108*6369498cSBiju Das 109*6369498cSBiju Das################################################### 110*6369498cSBiju Das# Compile 111*6369498cSBiju Das################################################### 112*6369498cSBiju Das 113*6369498cSBiju Das%.o:../%.c 114*6369498cSBiju Das $(CC) -c -I $< -o $@ 115*6369498cSBiju Das 116*6369498cSBiju Das.PHONY: clean 117*6369498cSBiju Dasclean: 118*6369498cSBiju Das $(CL) *.bin *.map *.srec *.elf *.o 119