1# 2# Copyright (c) 2015-2018, Renesas Electronics Corporation. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7toolchains := aarch64 8 9include ../../../make_helpers/toolchain.mk 10 11################################################### 12# makefile 13################################################### 14 15#output file name 16FILE_NAME_SA0 = bootparam_sa0 17FILE_NAME_SA6 = cert_header_sa6 18 19OUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf 20OUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf 21 22#object file name 23OBJ_FILE_SA0 = sa0.o 24OBJ_FILE_SA6 = sa6.o 25 26#linker script name 27MEMORY_DEF_SA0 = sa0.ld.S 28MEMORY_DEF_SA6 = sa6.ld.S 29 30################################################### 31# Convenience function for adding build definitions 32# $(eval $(call add_define,FOO)) will have: 33# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise 34define add_define 35DEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) 36endef 37 38# Process RCAR_SA0_SIZE flag 39ifndef RCAR_SA0_SIZE 40RCAR_SA0_SIZE := 1 41else 42ifeq (${RCAR_SA0_SIZE},0) 43RCAR_SA0_SIZE := 0 44else 45RCAR_SA0_SIZE := 1 46endif 47endif 48$(eval $(call add_define,RCAR_SA0_SIZE)) 49 50# Process RCAR_SA6_TYPE flag 51ifndef RCAR_SA6_TYPE 52RCAR_SA6_TYPE := 0 53else 54ifeq (${RCAR_SA6_TYPE},0) 55RCAR_SA6_TYPE := 0 56else 57RCAR_SA6_TYPE := 1 58endif 59endif 60$(eval $(call add_define,RCAR_SA6_TYPE)) 61 62# Handle different VMA adjustment on D3 63ifeq (${RCAR_LSI},${RCAR_D3}) 64RCAR_VMA_ADJUST_ADDR := 0xE6320000 65else 66RCAR_VMA_ADJUST_ADDR := 0xE6312000 67endif 68$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR)) 69 70 71################################################### 72 73#c compiler 74CC = $(CROSS_COMPILE)gcc 75CFLAGS += ${DEFINES} 76CFLAGS += -I../../include/lib/stdlib 77 78#Linker 79LD = $(CROSS_COMPILE)ld 80 81#objcopy 82objcopy = $(CROSS_COMPILE)objcopy 83 84#clean 85CL = rm -f 86 87################################################### 88.SUFFIXES : .s .c .o 89 90################################################### 91# command 92 93.PHONY: all 94all: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6) 95################################################### 96# Linker 97################################################### 98$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) 99 $(LD) $(OBJ_FILE_SA0) \ 100 -T $(MEMORY_DEF_SA0) \ 101 -o $(OUTPUT_FILE_SA0) \ 102 -Map $(FILE_NAME_SA0).map \ 103 104 $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec 105 $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin 106 107$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) 108 $(LD) $(OBJ_FILE_SA6) \ 109 -T $(MEMORY_DEF_SA6) \ 110 -o $(OUTPUT_FILE_SA6) \ 111 -Map $(FILE_NAME_SA6).map \ 112 113 $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec 114 $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin 115 116################################################### 117# Compile 118################################################### 119 120%.o: %.c 121 $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< 122 123.PHONY: clean 124clean: 125 $(CL) *.bin *.map *.srec *.elf *.o 126