17e532c4bSJorge Ramirez-Ortiz# 2*ea2c6521SChris Kay# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. 37e532c4bSJorge Ramirez-Ortiz# Copyright (c) 2015-2018, Renesas Electronics Corporation. All rights reserved. 47e532c4bSJorge Ramirez-Ortiz# 57e532c4bSJorge Ramirez-Ortiz# SPDX-License-Identifier: BSD-3-Clause 67e532c4bSJorge Ramirez-Ortiz# 77e532c4bSJorge Ramirez-Ortiz 8cc277de8SChris Kaytoolchains := aarch64 9cc277de8SChris Kay 107c4e1eeaSChris Kayinclude ../../../make_helpers/common.mk 11cc277de8SChris Kayinclude ../../../make_helpers/toolchain.mk 12cc277de8SChris Kay 137e532c4bSJorge Ramirez-Ortiz################################################### 147e532c4bSJorge Ramirez-Ortiz# makefile 157e532c4bSJorge Ramirez-Ortiz################################################### 167e532c4bSJorge Ramirez-Ortiz 177e532c4bSJorge Ramirez-Ortiz#output file name 187e532c4bSJorge Ramirez-OrtizFILE_NAME_SA0 = bootparam_sa0 197e532c4bSJorge Ramirez-OrtizFILE_NAME_SA6 = cert_header_sa6 207e532c4bSJorge Ramirez-Ortiz 217e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf 227e532c4bSJorge Ramirez-OrtizOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf 237e532c4bSJorge Ramirez-Ortiz 247e532c4bSJorge Ramirez-Ortiz#object file name 257e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA0 = sa0.o 267e532c4bSJorge Ramirez-OrtizOBJ_FILE_SA6 = sa6.o 277e532c4bSJorge Ramirez-Ortiz 287e532c4bSJorge Ramirez-Ortiz#linker script name 297e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA0 = sa0.ld.S 307e532c4bSJorge Ramirez-OrtizMEMORY_DEF_SA6 = sa6.ld.S 317e532c4bSJorge Ramirez-Ortiz 327e532c4bSJorge Ramirez-Ortiz################################################### 337e532c4bSJorge Ramirez-Ortiz# Convenience function for adding build definitions 347e532c4bSJorge Ramirez-Ortiz# $(eval $(call add_define,FOO)) will have: 357e532c4bSJorge Ramirez-Ortiz# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise 367e532c4bSJorge Ramirez-Ortizdefine add_define 377e532c4bSJorge Ramirez-OrtizDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) 387e532c4bSJorge Ramirez-Ortizendef 397e532c4bSJorge Ramirez-Ortiz 407e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA0_SIZE flag 417e532c4bSJorge Ramirez-Ortizifndef RCAR_SA0_SIZE 427e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1 437e532c4bSJorge Ramirez-Ortizelse 447e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA0_SIZE},0) 457e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 0 467e532c4bSJorge Ramirez-Ortizelse 477e532c4bSJorge Ramirez-OrtizRCAR_SA0_SIZE := 1 487e532c4bSJorge Ramirez-Ortizendif 497e532c4bSJorge Ramirez-Ortizendif 507e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA0_SIZE)) 517e532c4bSJorge Ramirez-Ortiz 527e532c4bSJorge Ramirez-Ortiz# Process RCAR_SA6_TYPE flag 537e532c4bSJorge Ramirez-Ortizifndef RCAR_SA6_TYPE 547e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0 557e532c4bSJorge Ramirez-Ortizelse 567e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SA6_TYPE},0) 577e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 0 587e532c4bSJorge Ramirez-Ortizelse 597e532c4bSJorge Ramirez-OrtizRCAR_SA6_TYPE := 1 607e532c4bSJorge Ramirez-Ortizendif 617e532c4bSJorge Ramirez-Ortizendif 627e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SA6_TYPE)) 637e532c4bSJorge Ramirez-Ortiz 64bfbf5df4SMarek Vasut# Handle different VMA adjustment on D3 65bfbf5df4SMarek Vasutifeq (${RCAR_LSI},${RCAR_D3}) 66bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6320000 67bfbf5df4SMarek Vasutelse 68bfbf5df4SMarek VasutRCAR_VMA_ADJUST_ADDR := 0xE6312000 69bfbf5df4SMarek Vasutendif 70bfbf5df4SMarek Vasut$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR)) 71bfbf5df4SMarek Vasut 72bfbf5df4SMarek Vasut 737e532c4bSJorge Ramirez-Ortiz################################################### 747e532c4bSJorge Ramirez-Ortiz 757e532c4bSJorge Ramirez-Ortiz#c compiler 767e532c4bSJorge Ramirez-OrtizCFLAGS += ${DEFINES} 777e532c4bSJorge Ramirez-OrtizCFLAGS += -I../../include/lib/stdlib 787e532c4bSJorge Ramirez-Ortiz 797e532c4bSJorge Ramirez-Ortiz#clean 807e532c4bSJorge Ramirez-OrtizCL = rm -f 817e532c4bSJorge Ramirez-Ortiz 827e532c4bSJorge Ramirez-Ortiz################################################### 837e532c4bSJorge Ramirez-Ortiz.SUFFIXES : .s .c .o 847e532c4bSJorge Ramirez-Ortiz 857e532c4bSJorge Ramirez-Ortiz################################################### 867e532c4bSJorge Ramirez-Ortiz# command 877e532c4bSJorge Ramirez-Ortiz 887e532c4bSJorge Ramirez-Ortiz.PHONY: all 89*ea2c6521SChris Kay 90*ea2c6521SChris Kayall: $(FILE_NAME_SA0).srec $(FILE_NAME_SA0).bin 91*ea2c6521SChris Kayall: $(FILE_NAME_SA6).srec $(FILE_NAME_SA6).bin 92*ea2c6521SChris Kay 937e532c4bSJorge Ramirez-Ortiz################################################### 947e532c4bSJorge Ramirez-Ortiz# Linker 957e532c4bSJorge Ramirez-Ortiz################################################### 967e532c4bSJorge Ramirez-Ortiz 97*ea2c6521SChris Kay$(FILE_NAME_SA0).srec: $(OUTPUT_FILE_SA0) 98ffb77421SChris Kay $(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec 99*ea2c6521SChris Kay 100*ea2c6521SChris Kay$(FILE_NAME_SA0).bin: $(OUTPUT_FILE_SA0) 101ffb77421SChris Kay $(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin 1027e532c4bSJorge Ramirez-Ortiz 103*ea2c6521SChris Kay$(OUTPUT_FILE_SA0): $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) 104*ea2c6521SChris Kay $(aarch64-ld) $(OBJ_FILE_SA0) -nostdlib -T $(MEMORY_DEF_SA0) -o $(OUTPUT_FILE_SA0) -Wl,-Map $(FILE_NAME_SA0).map 1057e532c4bSJorge Ramirez-Ortiz 106*ea2c6521SChris Kay$(FILE_NAME_SA6).srec: $(OUTPUT_FILE_SA6) 107ffb77421SChris Kay $(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec 108*ea2c6521SChris Kay 109*ea2c6521SChris Kay$(FILE_NAME_SA6).bin: $(OUTPUT_FILE_SA6) 110ffb77421SChris Kay $(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin 1117e532c4bSJorge Ramirez-Ortiz 112*ea2c6521SChris Kay$(OUTPUT_FILE_SA6): $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) 113*ea2c6521SChris Kay $(aarch64-ld) $(OBJ_FILE_SA6) -nostdlib -T $(MEMORY_DEF_SA6) -o $(OUTPUT_FILE_SA6) -Wl,-Map $(FILE_NAME_SA6).map 114*ea2c6521SChris Kay 1157e532c4bSJorge Ramirez-Ortiz################################################### 1167e532c4bSJorge Ramirez-Ortiz# Compile 1177e532c4bSJorge Ramirez-Ortiz################################################### 1187e532c4bSJorge Ramirez-Ortiz 119e068a7caSChris Kay%.o: %.c 120ffb77421SChris Kay $(aarch64-cc) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< 1217e532c4bSJorge Ramirez-Ortiz 1227e532c4bSJorge Ramirez-Ortiz.PHONY: clean 1237e532c4bSJorge Ramirez-Ortizclean: 1247e532c4bSJorge Ramirez-Ortiz $(CL) *.bin *.map *.srec *.elf *.o 125