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