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 7cc277de8SChris Kaytoolchains := aarch64 8cc277de8SChris Kay 9cc277de8SChris Kayinclude ../../../make_helpers/toolchain.mk 10cc277de8SChris Kay 117e532c4bSJorge Ramirez-Ortiz################################################### 127e532c4bSJorge Ramirez-Ortiz# makefile 137e532c4bSJorge Ramirez-Ortiz################################################### 147e532c4bSJorge Ramirez-Ortiz 157e532c4bSJorge Ramirez-Ortiz#output file name 167e532c4bSJorge Ramirez-OrtizFILE_NAME_SA0 = bootparam_sa0 177e532c4bSJorge Ramirez-OrtizFILE_NAME_SA6 = cert_header_sa6 187e532c4bSJorge Ramirez-Ortiz 197e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf 207e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf 217e532c4bSJorge Ramirez-Ortiz 227e532c4bSJorge Ramirez-Ortiz#object file name 237e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA0 = sa0.o 247e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA6 = sa6.o 257e532c4bSJorge Ramirez-Ortiz 267e532c4bSJorge Ramirez-Ortiz#linker script name 277e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA0 = sa0.ld.S 287e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA6 = sa6.ld.S 297e532c4bSJorge Ramirez-Ortiz 307e532c4bSJorge Ramirez-Ortiz################################################### 317e532c4bSJorge Ramirez-Ortiz# Convenience function for adding build definitions 327e532c4bSJorge Ramirez-Ortiz# $(eval $(call add_define,FOO)) will have: 337e532c4bSJorge Ramirez-Ortiz# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise 347e532c4bSJorge Ramirez-Ortizdefine add_define 357e532c4bSJorge Ramirez-OrtizDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) 367e532c4bSJorge Ramirez-Ortizendef 377e532c4bSJorge Ramirez-Ortiz 387e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA0_SIZE flag 397e532c4bSJorge Ramirez-Ortizifndef RCAR_SA0_SIZE 407e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1 417e532c4bSJorge Ramirez-Ortizelse 427e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA0_SIZE},0) 437e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 0 447e532c4bSJorge Ramirez-Ortizelse 457e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1 467e532c4bSJorge Ramirez-Ortizendif 477e532c4bSJorge Ramirez-Ortizendif 487e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA0_SIZE)) 497e532c4bSJorge Ramirez-Ortiz 507e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA6_TYPE flag 517e532c4bSJorge Ramirez-Ortizifndef RCAR_SA6_TYPE 527e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0 537e532c4bSJorge Ramirez-Ortizelse 547e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA6_TYPE},0) 557e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0 567e532c4bSJorge Ramirez-Ortizelse 577e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 1 587e532c4bSJorge Ramirez-Ortizendif 597e532c4bSJorge Ramirez-Ortizendif 607e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA6_TYPE)) 617e532c4bSJorge Ramirez-Ortiz 62bfbf5df4SMarek Vasut# Handle different VMA adjustment on D3 63bfbf5df4SMarek Vasutifeq (${RCAR_LSI},${RCAR_D3}) 64bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6320000 65bfbf5df4SMarek Vasutelse 66bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6312000 67bfbf5df4SMarek Vasutendif 68bfbf5df4SMarek Vasut$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR)) 69bfbf5df4SMarek Vasut 70bfbf5df4SMarek Vasut 717e532c4bSJorge Ramirez-Ortiz################################################### 727e532c4bSJorge Ramirez-Ortiz 737e532c4bSJorge Ramirez-Ortiz#c compiler 747e532c4bSJorge Ramirez-OrtizCFLAGS += ${DEFINES} 757e532c4bSJorge Ramirez-OrtizCFLAGS += -I../../include/lib/stdlib 767e532c4bSJorge Ramirez-Ortiz 777e532c4bSJorge Ramirez-Ortiz#clean 787e532c4bSJorge Ramirez-OrtizCL = rm -f 797e532c4bSJorge Ramirez-Ortiz 807e532c4bSJorge Ramirez-Ortiz################################################### 817e532c4bSJorge Ramirez-Ortiz.SUFFIXES : .s .c .o 827e532c4bSJorge Ramirez-Ortiz 837e532c4bSJorge Ramirez-Ortiz################################################### 847e532c4bSJorge Ramirez-Ortiz# command 857e532c4bSJorge Ramirez-Ortiz 867e532c4bSJorge Ramirez-Ortiz.PHONY: all 877e532c4bSJorge Ramirez-Ortizall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6) 887e532c4bSJorge Ramirez-Ortiz################################################### 897e532c4bSJorge Ramirez-Ortiz# Linker 907e532c4bSJorge Ramirez-Ortiz################################################### 917e532c4bSJorge Ramirez-Ortiz$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) 92*2f1c5e7eSChris Kay $(aarch64-ld) $(OBJ_FILE_SA0) -nostdlib \ 937e532c4bSJorge Ramirez-Ortiz -T $(MEMORY_DEF_SA0) \ 947e532c4bSJorge Ramirez-Ortiz -o $(OUTPUT_FILE_SA0) \ 95*2f1c5e7eSChris Kay -Wl,-Map $(FILE_NAME_SA0).map \ 967e532c4bSJorge Ramirez-Ortiz 97ffb77421SChris Kay $(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec 98ffb77421SChris Kay $(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin 997e532c4bSJorge Ramirez-Ortiz 1007e532c4bSJorge Ramirez-Ortiz$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) 101*2f1c5e7eSChris Kay $(aarch64-ld) $(OBJ_FILE_SA6) -nostdlib \ 1027e532c4bSJorge Ramirez-Ortiz -T $(MEMORY_DEF_SA6) \ 1037e532c4bSJorge Ramirez-Ortiz -o $(OUTPUT_FILE_SA6) \ 104*2f1c5e7eSChris Kay -Wl,-Map $(FILE_NAME_SA6).map \ 1057e532c4bSJorge Ramirez-Ortiz 106ffb77421SChris Kay $(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec 107ffb77421SChris Kay $(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin 1087e532c4bSJorge Ramirez-Ortiz 1097e532c4bSJorge Ramirez-Ortiz################################################### 1107e532c4bSJorge Ramirez-Ortiz# Compile 1117e532c4bSJorge Ramirez-Ortiz################################################### 1127e532c4bSJorge Ramirez-Ortiz 113e068a7caSChris Kay%.o: %.c 114ffb77421SChris Kay $(aarch64-cc) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< 1157e532c4bSJorge Ramirez-Ortiz 1167e532c4bSJorge Ramirez-Ortiz.PHONY: clean 1177e532c4bSJorge Ramirez-Ortizclean: 1187e532c4bSJorge Ramirez-Ortiz $(CL) *.bin *.map *.srec *.elf *.o 119