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