xref: /rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile (revision cc277de81692cf72f067354ada6e84f5e996f6b8)
1#
2# Copyright (c) 2020, 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
62RCAR_VMA_ADJUST_ADDR := 0xE6320000
63$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
64
65
66###################################################
67
68#c compiler
69CC = $(CROSS_COMPILE)gcc
70CFLAGS += ${DEFINES}
71CFLAGS += -nostdinc \
72	  -I../../../include/lib/libc \
73	  -I../../../include/lib/libc/aarch64
74
75#Linker
76LD = $(CROSS_COMPILE)ld
77
78#objcopy
79objcopy = $(CROSS_COMPILE)objcopy
80
81#clean
82CL = rm -f
83
84###################################################
85.SUFFIXES : .s .c .o
86
87###################################################
88# command
89
90.PHONY: all
91all: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6)
92###################################################
93# Linker
94###################################################
95$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0)
96	$(LD) $(OBJ_FILE_SA0)		 	\
97	-T $(MEMORY_DEF_SA0)			\
98	-o $(OUTPUT_FILE_SA0)			\
99	-Map $(FILE_NAME_SA0).map 		\
100
101	$(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
102	$(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin
103
104$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6)
105	$(LD) $(OBJ_FILE_SA6)		 	\
106	-T $(MEMORY_DEF_SA6)			\
107	-o $(OUTPUT_FILE_SA6)			\
108	-Map $(FILE_NAME_SA6).map 		\
109
110	$(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
111	$(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin
112
113###################################################
114# Compile
115###################################################
116
117%.o: %.c
118	$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
119
120.PHONY: clean
121clean:
122	$(CL)  *.bin *.map *.srec *.elf *.o
123