blob: 115ca5c6360869b56c9fad78663e03cdcf829cc9 [file] [log] [blame]
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +02001#
Chris Kayb278eb72024-06-04 11:31:06 +00002# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +02003# Copyright (c) 2015-2018, Renesas Electronics Corporation. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
Chris Kayc8a47ba2023-10-20 09:17:33 +00008toolchains := aarch64
9
Chris Kay1870c722024-05-02 17:52:37 +000010include ../../../make_helpers/common.mk
Chris Kayc8a47ba2023-10-20 09:17:33 +000011include ../../../make_helpers/toolchain.mk
12
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +020013###################################################
14# makefile
15###################################################
16
17#output file name
18FILE_NAME_SA0 = bootparam_sa0
19FILE_NAME_SA6 = cert_header_sa6
20
21OUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf
22OUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf
23
24#object file name
25OBJ_FILE_SA0 = sa0.o
26OBJ_FILE_SA6 = sa6.o
27
28#linker script name
29MEMORY_DEF_SA0 = sa0.ld.S
30MEMORY_DEF_SA6 = sa6.ld.S
31
32###################################################
33# Convenience function for adding build definitions
34# $(eval $(call add_define,FOO)) will have:
35# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise
36define add_define
37DEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),)
38endef
39
40# Process RCAR_SA0_SIZE flag
41ifndef RCAR_SA0_SIZE
42RCAR_SA0_SIZE := 1
43else
44ifeq (${RCAR_SA0_SIZE},0)
45RCAR_SA0_SIZE := 0
46else
47RCAR_SA0_SIZE := 1
48endif
49endif
50$(eval $(call add_define,RCAR_SA0_SIZE))
51
52# Process RCAR_SA6_TYPE flag
53ifndef RCAR_SA6_TYPE
54RCAR_SA6_TYPE := 0
55else
56ifeq (${RCAR_SA6_TYPE},0)
57RCAR_SA6_TYPE := 0
58else
59RCAR_SA6_TYPE := 1
60endif
61endif
62$(eval $(call add_define,RCAR_SA6_TYPE))
63
Marek Vasut4ae342c2019-01-05 13:56:03 +010064# Handle different VMA adjustment on D3
65ifeq (${RCAR_LSI},${RCAR_D3})
66RCAR_VMA_ADJUST_ADDR := 0xE6320000
67else
68RCAR_VMA_ADJUST_ADDR := 0xE6312000
69endif
70$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR))
71
72
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +020073###################################################
74
75#c compiler
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +020076CFLAGS += ${DEFINES}
77CFLAGS += -I../../include/lib/stdlib
78
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +020079#clean
80CL = rm -f
81
82###################################################
83.SUFFIXES : .s .c .o
84
85###################################################
86# command
87
88.PHONY: all
Chris Kayb278eb72024-06-04 11:31:06 +000089
90all: $(FILE_NAME_SA0).srec $(FILE_NAME_SA0).bin
91all: $(FILE_NAME_SA6).srec $(FILE_NAME_SA6).bin
92
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +020093###################################################
94# Linker
95###################################################
Chris Kayb278eb72024-06-04 11:31:06 +000096
97$(FILE_NAME_SA0).srec: $(OUTPUT_FILE_SA0)
98 $(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +020099
Chris Kayb278eb72024-06-04 11:31:06 +0000100$(FILE_NAME_SA0).bin: $(OUTPUT_FILE_SA0)
101 $(aarch64-oc) -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
Chris Kayb278eb72024-06-04 11:31:06 +0000103$(OUTPUT_FILE_SA0): $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0)
104 $(aarch64-ld) $(OBJ_FILE_SA0) -nostdlib -T $(MEMORY_DEF_SA0) -o $(OUTPUT_FILE_SA0) -Wl,-Map $(FILE_NAME_SA0).map
105
106$(FILE_NAME_SA6).srec: $(OUTPUT_FILE_SA6)
107 $(aarch64-oc) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec
108
109$(FILE_NAME_SA6).bin: $(OUTPUT_FILE_SA6)
110 $(aarch64-oc) -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
Chris Kayb278eb72024-06-04 11:31:06 +0000112$(OUTPUT_FILE_SA6): $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6)
113 $(aarch64-ld) $(OBJ_FILE_SA6) -nostdlib -T $(MEMORY_DEF_SA6) -o $(OUTPUT_FILE_SA6) -Wl,-Map $(FILE_NAME_SA6).map
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +0200114
115###################################################
116# Compile
117###################################################
118
Chris Kay46d3ab32024-01-15 16:16:07 +0000119%.o: %.c
Chris Kay523e8642023-12-04 12:03:51 +0000120 $(aarch64-cc) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
Jorge Ramirez-Ortizbf084dc2018-09-23 09:36:13 +0200121
122.PHONY: clean
123clean:
124 $(CL) *.bin *.map *.srec *.elf *.o