xref: /rk3399_ARM-atf/tools/renesas/rzg_layout_create/makefile (revision 6369498c0802f23bb27fbf00577a6c2e12b83975)
1*6369498cSBiju Das#
2*6369498cSBiju Das# Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
3*6369498cSBiju Das#
4*6369498cSBiju Das# SPDX-License-Identifier: BSD-3-Clause
5*6369498cSBiju Das#
6*6369498cSBiju Das
7*6369498cSBiju Das###################################################
8*6369498cSBiju Das# makefile
9*6369498cSBiju Das###################################################
10*6369498cSBiju Das
11*6369498cSBiju Das#output file name
12*6369498cSBiju DasFILE_NAME_SA0 = bootparam_sa0
13*6369498cSBiju DasFILE_NAME_SA6 = cert_header_sa6
14*6369498cSBiju Das
15*6369498cSBiju DasOUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf
16*6369498cSBiju DasOUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf
17*6369498cSBiju Das
18*6369498cSBiju Das#object file name
19*6369498cSBiju DasOBJ_FILE_SA0 = sa0.o
20*6369498cSBiju DasOBJ_FILE_SA6 = sa6.o
21*6369498cSBiju Das
22*6369498cSBiju Das#linker script name
23*6369498cSBiju DasMEMORY_DEF_SA0 = sa0.ld.S
24*6369498cSBiju DasMEMORY_DEF_SA6 = sa6.ld.S
25*6369498cSBiju Das
26*6369498cSBiju Das###################################################
27*6369498cSBiju Das# Convenience function for adding build definitions
28*6369498cSBiju Das# $(eval $(call add_define,FOO)) will have:
29*6369498cSBiju Das# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise
30*6369498cSBiju Dasdefine add_define
31*6369498cSBiju DasDEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),)
32*6369498cSBiju Dasendef
33*6369498cSBiju Das
34*6369498cSBiju Das# Process RCAR_SA0_SIZE flag
35*6369498cSBiju Dasifndef RCAR_SA0_SIZE
36*6369498cSBiju DasRCAR_SA0_SIZE := 1
37*6369498cSBiju Daselse
38*6369498cSBiju Dasifeq (${RCAR_SA0_SIZE},0)
39*6369498cSBiju DasRCAR_SA0_SIZE := 0
40*6369498cSBiju Daselse
41*6369498cSBiju DasRCAR_SA0_SIZE := 1
42*6369498cSBiju Dasendif
43*6369498cSBiju Dasendif
44*6369498cSBiju Das$(eval $(call add_define,RCAR_SA0_SIZE))
45*6369498cSBiju Das
46*6369498cSBiju Das# Process RCAR_SA6_TYPE flag
47*6369498cSBiju Dasifndef RCAR_SA6_TYPE
48*6369498cSBiju DasRCAR_SA6_TYPE := 0
49*6369498cSBiju Daselse
50*6369498cSBiju Dasifeq (${RCAR_SA6_TYPE},0)
51*6369498cSBiju DasRCAR_SA6_TYPE := 0
52*6369498cSBiju Daselse
53*6369498cSBiju DasRCAR_SA6_TYPE := 1
54*6369498cSBiju Dasendif
55*6369498cSBiju Dasendif
56*6369498cSBiju Das$(eval $(call add_define,RCAR_SA6_TYPE))
57*6369498cSBiju Das
58*6369498cSBiju DasRCAR_VMA_ADJUST_ADDR := 0xE6320000
59*6369498cSBiju Das$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
60*6369498cSBiju Das
61*6369498cSBiju Das
62*6369498cSBiju Das###################################################
63*6369498cSBiju Das
64*6369498cSBiju Das#c compiler
65*6369498cSBiju DasCC = $(CROSS_COMPILE)gcc
66*6369498cSBiju DasCFLAGS += ${DEFINES}
67*6369498cSBiju DasCFLAGS += -nostdinc \
68*6369498cSBiju Das	  -I../../../include/lib/libc \
69*6369498cSBiju Das	  -I../../../include/lib/libc/aarch64
70*6369498cSBiju Das
71*6369498cSBiju Das#Linker
72*6369498cSBiju DasLD = $(CROSS_COMPILE)ld
73*6369498cSBiju Das
74*6369498cSBiju Das#objcopy
75*6369498cSBiju Dasobjcopy = $(CROSS_COMPILE)objcopy
76*6369498cSBiju Das
77*6369498cSBiju Das#clean
78*6369498cSBiju DasCL = rm -f
79*6369498cSBiju Das
80*6369498cSBiju Das###################################################
81*6369498cSBiju Das.SUFFIXES : .s .c .o
82*6369498cSBiju Das
83*6369498cSBiju Das###################################################
84*6369498cSBiju Das# command
85*6369498cSBiju Das
86*6369498cSBiju Das.PHONY: all
87*6369498cSBiju Dasall: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6)
88*6369498cSBiju Das###################################################
89*6369498cSBiju Das# Linker
90*6369498cSBiju Das###################################################
91*6369498cSBiju Das$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0)
92*6369498cSBiju Das	$(LD) $(OBJ_FILE_SA0)		 	\
93*6369498cSBiju Das	-T $(MEMORY_DEF_SA0)			\
94*6369498cSBiju Das	-o $(OUTPUT_FILE_SA0)			\
95*6369498cSBiju Das	-Map $(FILE_NAME_SA0).map 		\
96*6369498cSBiju Das
97*6369498cSBiju Das	$(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
98*6369498cSBiju Das	$(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin
99*6369498cSBiju Das
100*6369498cSBiju Das$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6)
101*6369498cSBiju Das	$(LD) $(OBJ_FILE_SA6)		 	\
102*6369498cSBiju Das	-T $(MEMORY_DEF_SA6)			\
103*6369498cSBiju Das	-o $(OUTPUT_FILE_SA6)			\
104*6369498cSBiju Das	-Map $(FILE_NAME_SA6).map 		\
105*6369498cSBiju Das
106*6369498cSBiju Das	$(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
107*6369498cSBiju Das	$(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3  $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin
108*6369498cSBiju Das
109*6369498cSBiju Das###################################################
110*6369498cSBiju Das# Compile
111*6369498cSBiju Das###################################################
112*6369498cSBiju Das
113*6369498cSBiju Das%.o:../%.c
114*6369498cSBiju Das	$(CC) -c -I $< -o $@
115*6369498cSBiju Das
116*6369498cSBiju Das.PHONY: clean
117*6369498cSBiju Dasclean:
118*6369498cSBiju Das	$(CL)  *.bin *.map *.srec *.elf *.o
119