17e532c4bSJorge Ramirez-Ortiz# 27e532c4bSJorge Ramirez-Ortiz# Copyright (c) 2015-2018, Renesas Electronics Corporation. All rights reserved. 37e532c4bSJorge Ramirez-Ortiz# 47e532c4bSJorge Ramirez-Ortiz# SPDX-License-Identifier: BSD-3-Clause 57e532c4bSJorge Ramirez-Ortiz# 67e532c4bSJorge Ramirez-Ortiz 77e532c4bSJorge Ramirez-Ortiz################################################### 87e532c4bSJorge Ramirez-Ortiz# makefile 97e532c4bSJorge Ramirez-Ortiz################################################### 107e532c4bSJorge Ramirez-Ortiz 117e532c4bSJorge Ramirez-Ortiz#output file name 127e532c4bSJorge Ramirez-OrtizFILE_NAME_SA0 = bootparam_sa0 137e532c4bSJorge Ramirez-OrtizFILE_NAME_SA6 = cert_header_sa6 147e532c4bSJorge Ramirez-Ortiz 157e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf 167e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf 177e532c4bSJorge Ramirez-Ortiz 187e532c4bSJorge Ramirez-Ortiz#object file name 197e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA0 = sa0.o 207e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA6 = sa6.o 217e532c4bSJorge Ramirez-Ortiz 227e532c4bSJorge Ramirez-Ortiz#linker script name 237e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA0 = sa0.ld.S 247e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA6 = sa6.ld.S 257e532c4bSJorge Ramirez-Ortiz 267e532c4bSJorge Ramirez-Ortiz################################################### 277e532c4bSJorge Ramirez-Ortiz# Convenience function for adding build definitions 287e532c4bSJorge Ramirez-Ortiz# $(eval $(call add_define,FOO)) will have: 297e532c4bSJorge Ramirez-Ortiz# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise 307e532c4bSJorge Ramirez-Ortizdefine add_define 317e532c4bSJorge Ramirez-OrtizDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) 327e532c4bSJorge Ramirez-Ortizendef 337e532c4bSJorge Ramirez-Ortiz 347e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA0_SIZE flag 357e532c4bSJorge Ramirez-Ortizifndef RCAR_SA0_SIZE 367e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1 377e532c4bSJorge Ramirez-Ortizelse 387e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA0_SIZE},0) 397e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 0 407e532c4bSJorge Ramirez-Ortizelse 417e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1 427e532c4bSJorge Ramirez-Ortizendif 437e532c4bSJorge Ramirez-Ortizendif 447e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA0_SIZE)) 457e532c4bSJorge Ramirez-Ortiz 467e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA6_TYPE flag 477e532c4bSJorge Ramirez-Ortizifndef RCAR_SA6_TYPE 487e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0 497e532c4bSJorge Ramirez-Ortizelse 507e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA6_TYPE},0) 517e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0 527e532c4bSJorge Ramirez-Ortizelse 537e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 1 547e532c4bSJorge Ramirez-Ortizendif 557e532c4bSJorge Ramirez-Ortizendif 567e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA6_TYPE)) 577e532c4bSJorge Ramirez-Ortiz 58*bfbf5df4SMarek Vasut# Handle different VMA adjustment on D3 59*bfbf5df4SMarek Vasutifeq (${RCAR_LSI},${RCAR_D3}) 60*bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6320000 61*bfbf5df4SMarek Vasutelse 62*bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6312000 63*bfbf5df4SMarek Vasutendif 64*bfbf5df4SMarek Vasut$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR)) 65*bfbf5df4SMarek Vasut 66*bfbf5df4SMarek Vasut 677e532c4bSJorge Ramirez-Ortiz################################################### 687e532c4bSJorge Ramirez-Ortiz 697e532c4bSJorge Ramirez-Ortiz#c compiler 707e532c4bSJorge Ramirez-OrtizCC = $(CROSS_COMPILE)gcc 717e532c4bSJorge Ramirez-OrtizCFLAGS += ${DEFINES} 727e532c4bSJorge Ramirez-OrtizCFLAGS += -I../../include/lib/stdlib 737e532c4bSJorge Ramirez-Ortiz 747e532c4bSJorge Ramirez-Ortiz#Linker 757e532c4bSJorge Ramirez-OrtizLD = $(CROSS_COMPILE)ld 767e532c4bSJorge Ramirez-Ortiz 777e532c4bSJorge Ramirez-Ortiz#objcopy 787e532c4bSJorge Ramirez-Ortizobjcopy = $(CROSS_COMPILE)objcopy 797e532c4bSJorge Ramirez-Ortiz 807e532c4bSJorge Ramirez-Ortiz#clean 817e532c4bSJorge Ramirez-OrtizCL = rm -f 827e532c4bSJorge Ramirez-Ortiz 837e532c4bSJorge Ramirez-Ortiz################################################### 847e532c4bSJorge Ramirez-Ortiz.SUFFIXES : .s .c .o 857e532c4bSJorge Ramirez-Ortiz 867e532c4bSJorge Ramirez-Ortiz################################################### 877e532c4bSJorge Ramirez-Ortiz# command 887e532c4bSJorge Ramirez-Ortiz 897e532c4bSJorge Ramirez-Ortiz.PHONY: all 907e532c4bSJorge Ramirez-Ortizall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6) 917e532c4bSJorge Ramirez-Ortiz################################################### 927e532c4bSJorge Ramirez-Ortiz# Linker 937e532c4bSJorge Ramirez-Ortiz################################################### 947e532c4bSJorge Ramirez-Ortiz$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) 957e532c4bSJorge Ramirez-Ortiz $(LD) $(OBJ_FILE_SA0) \ 967e532c4bSJorge Ramirez-Ortiz -T $(MEMORY_DEF_SA0) \ 977e532c4bSJorge Ramirez-Ortiz -o $(OUTPUT_FILE_SA0) \ 987e532c4bSJorge Ramirez-Ortiz -Map $(FILE_NAME_SA0).map \ 997e532c4bSJorge Ramirez-Ortiz 100*bfbf5df4SMarek Vasut $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec 101*bfbf5df4SMarek Vasut $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin 1027e532c4bSJorge Ramirez-Ortiz 1037e532c4bSJorge Ramirez-Ortiz$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) 1047e532c4bSJorge Ramirez-Ortiz $(LD) $(OBJ_FILE_SA6) \ 1057e532c4bSJorge Ramirez-Ortiz -T $(MEMORY_DEF_SA6) \ 1067e532c4bSJorge Ramirez-Ortiz -o $(OUTPUT_FILE_SA6) \ 1077e532c4bSJorge Ramirez-Ortiz -Map $(FILE_NAME_SA6).map \ 1087e532c4bSJorge Ramirez-Ortiz 109*bfbf5df4SMarek Vasut $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec 110*bfbf5df4SMarek Vasut $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin 1117e532c4bSJorge Ramirez-Ortiz 1127e532c4bSJorge Ramirez-Ortiz################################################### 1137e532c4bSJorge Ramirez-Ortiz# Compile 1147e532c4bSJorge Ramirez-Ortiz################################################### 1157e532c4bSJorge Ramirez-Ortiz 1167e532c4bSJorge Ramirez-Ortiz%.o:../%.c 1177e532c4bSJorge Ramirez-Ortiz $(CC) -c -I $< -o $@ 1187e532c4bSJorge Ramirez-Ortiz 1197e532c4bSJorge Ramirez-Ortiz.PHONY: clean 1207e532c4bSJorge Ramirez-Ortizclean: 1217e532c4bSJorge Ramirez-Ortiz $(CL) *.bin *.map *.srec *.elf *.o 122