xref: /rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile (revision 6f05b8d45e54e1c3ae30b788ad7f3bbb89b132ab)
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/common.mk
10include ../../../make_helpers/toolchain.mk
11
12###################################################
13# makefile
14###################################################
15
16#output file name
17FILE_NAME_SA0 = bootparam_sa0
18FILE_NAME_SA6 = cert_header_sa6
19
20OUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf
21OUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf
22
23#object file name
24OBJ_FILE_SA0 = sa0.o
25OBJ_FILE_SA6 = sa6.o
26
27#linker script name
28MEMORY_DEF_SA0 = sa0.ld.S
29MEMORY_DEF_SA6 = sa6.ld.S
30
31###################################################
32# Convenience function for adding build definitions
33# $(eval $(call add_define,FOO)) will have:
34# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise
35define add_define
36DEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),)
37endef
38
39# Process RCAR_SA0_SIZE flag
40ifndef RCAR_SA0_SIZE
41RCAR_SA0_SIZE := 1
42else
43ifeq (${RCAR_SA0_SIZE},0)
44RCAR_SA0_SIZE := 0
45else
46RCAR_SA0_SIZE := 1
47endif
48endif
49$(eval $(call add_define,RCAR_SA0_SIZE))
50
51# Process RCAR_SA6_TYPE flag
52ifndef RCAR_SA6_TYPE
53RCAR_SA6_TYPE := 0
54else
55ifeq (${RCAR_SA6_TYPE},0)
56RCAR_SA6_TYPE := 0
57else
58RCAR_SA6_TYPE := 1
59endif
60endif
61$(eval $(call add_define,RCAR_SA6_TYPE))
62
63RCAR_VMA_ADJUST_ADDR := 0xE6320000
64$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
65
66
67###################################################
68
69#c compiler
70CFLAGS += ${DEFINES}
71CFLAGS += -nostdinc \
72	  -I../../../include/lib/libc \
73	  -I../../../include/lib/libc/aarch64
74
75#clean
76CL = rm -f
77
78###################################################
79.SUFFIXES : .s .c .o
80
81###################################################
82# command
83
84.PHONY: all
85all: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6)
86###################################################
87# Linker
88###################################################
89$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0)
90	$(aarch64-ld) $(OBJ_FILE_SA0) -nostdlib	\
91	-T $(MEMORY_DEF_SA0)			\
92	-o $(OUTPUT_FILE_SA0)			\
93	-Wl,-Map $(FILE_NAME_SA0).map 		\
94
95	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
96	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin
97
98$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6)
99	$(aarch64-ld) $(OBJ_FILE_SA6) -nostdlib	\
100	-T $(MEMORY_DEF_SA6)			\
101	-o $(OUTPUT_FILE_SA6)			\
102	-Wl,-Map $(FILE_NAME_SA6).map 		\
103
104	$(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
105	$(aarch64-oc) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin
106
107###################################################
108# Compile
109###################################################
110
111%.o: %.c
112	$(aarch64-cc) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
113
114.PHONY: clean
115clean:
116	$(CL)  *.bin *.map *.srec *.elf *.o
117