xref: /aosp_15_r20/external/coreboot/src/arch/arm/armv7/Makefile.mk (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1## SPDX-License-Identifier: GPL-2.0-only
2
3armv7_flags = -mthumb -I$(src)/arch/arm/include/armv7/ -D__COREBOOT_ARM_ARCH__=7
4armv7-a_flags = -march=armv7-a $(armv7_flags) -D__COREBOOT_ARM_V7_A__
5armv7-m_flags = -march=armv7-m $(armv7_flags) -D__COREBOOT_ARM_V7_M__
6armv7-r_flags = -march=armv7-r $(armv7_flags) -D__COREBOOT_ARM_V7_R__
7
8armv7_asm_flags = -Wa,-mthumb -Wa,-mimplicit-it=always
9ifeq ($(CONFIG_COMPILER_GCC),y)
10armv7_asm_flags += -Wa,-mno-warn-deprecated
11else # CLANG
12armv7_flags += -mfpu=none
13endif
14armv7-r_asm_flags = $(armv7-r_flags) $(armv7_asm_flags)
15
16###############################################################################
17# bootblock
18###############################################################################
19
20ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV7),y)
21decompressor-generic-ccopts += $(armv7-a_flags)
22decompressor-S-ccopts += $(armv7_asm_flags)
23bootblock-generic-ccopts += $(armv7-a_flags)
24bootblock-S-ccopts += $(armv7_asm_flags)
25
26ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y)
27decompressor-y += bootblock.S
28ifneq ($(CONFIG_COMPRESS_BOOTBLOCK),y)
29bootblock-y += bootblock.S
30endif
31endif
32
33decompressor-y += cache.c
34bootblock-y += cache.c
35decompressor-y += cpu.S
36bootblock-y += cpu.S
37decompressor-y += mmu.c
38bootblock-y += mmu.c
39
40bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += exception.c
41bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += exception_asm.S
42
43else ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV7_M),y)
44bootblock-generic-ccopts += $(armv7-m_flags)
45bootblock-S-ccopts += $(armv7_asm_flags)
46
47ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y)
48bootblock-y += bootblock_m.S
49endif
50bootblock-y += exception_mr.c
51bootblock-y += cache_m.c
52
53else ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV7_R),y)
54bootblock-generic-ccopts += $(armv7-r_flags)
55bootblock-S-ccopts += $(armv7-r_asm_flags)
56
57ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y)
58bootblock-y += bootblock.S
59endif
60
61bootblock-y += cache.c
62bootblock-y += cpu.S
63bootblock-y += exception_mr.c
64bootblock-y += mmu.c
65
66endif # CONFIG_ARCH_BOOTBLOCK_ARMV7
67
68################################################################################
69## verification stage
70################################################################################
71
72ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV7),y)
73verstage-generic-ccopts += $(armv7-a_flags)
74verstage-S-ccopts += $(armv7_asm_flags)
75
76verstage-y += cache.c
77verstage-y += cpu.S
78verstage-y += exception.c
79verstage-y += exception_asm.S
80verstage-y += mmu.c
81
82else ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV7_M),y)
83verstage-generic-ccopts += $(armv7-m_flags)
84verstage-S-ccopts += $(armv7_asm_flags)
85
86else ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV7_R),y)
87verstage-generic-ccopts += $(armv7-r_flags)
88verstage-S-ccopts += $(armv7-r_asm_flags)
89
90verstage-y += cache.c
91verstage-y += cpu.S
92verstage-y += exception_mr.c
93verstage-y += mmu.c
94
95endif # CONFIG_ARCH_VERSTAGE_ARMV7_M
96
97################################################################################
98## ROM stage
99################################################################################
100ifeq ($(CONFIG_ARCH_ROMSTAGE_ARMV7),y)
101romstage-y += cache.c
102romstage-y += cpu.S
103romstage-y += exception.c
104romstage-y += exception_asm.S
105romstage-y += mmu.c
106
107romstage-generic-ccopts += $(armv7-a_flags)
108romstage-S-ccopts += $(armv7_asm_flags)
109
110rmodules_arm-generic-ccopts += $(armv7-a_flags)
111rmodules_arm-S-ccopts += $(armv7_asm_flags)
112
113else ifeq ($(CONFIG_ARCH_ROMSTAGE_ARMV7_R),y)
114romstage-y += cache.c
115romstage-y += cpu.S
116romstage-y += exception_mr.c
117romstage-y += mmu.c
118
119romstage-generic-ccopts += $(armv7-r_flags)
120romstage-S-ccopts += $(armv7-r_asm_flags)
121
122rmodules_arm-generic-ccopts += $(armv7-r_flags)
123rmodules_arm-S-ccopts += $(armv7-r_asm_flags)
124
125endif # CONFIG_ARCH_ROMSTAGE_ARMV7
126
127###############################################################################
128# ramstage
129###############################################################################
130
131ifeq ($(CONFIG_ARCH_RAMSTAGE_ARMV7),y)
132
133ramstage-y += cache.c
134ramstage-y += cpu.S
135ramstage-y += exception.c
136ramstage-y += exception_asm.S
137ramstage-y += mmu.c
138
139ramstage-generic-ccopts += $(armv7-a_flags)
140ramstage-S-ccopts += $(armv7_asm_flags)
141
142# All rmodule code is armv7 if ramstage is armv7.
143rmodules_arm-generic-ccopts += $(armv7-a_flags)
144rmodules_arm-S-ccopts += $(armv7_asm_flags)
145
146else ifeq ($(CONFIG_ARCH_RAMSTAGE_ARMV7_R),y)
147
148ramstage-y += cache.c
149ramstage-y += cpu.S
150ramstage-y += exception_mr.c
151ramstage-y += mmu.c
152
153ramstage-generic-ccopts += $(armv7-r_flags)
154ramstage-S-ccopts += $(armv7-r_asm_flags)
155
156# All rmodule code is armv7 if ramstage is armv7.
157rmodules_arm-generic-ccopts += $(armv7-r_flags)
158rmodules_arm-S-ccopts += $(armv7-r_asm_flags)
159
160endif # CONFIG_ARCH_RAMSTAGE_ARMV7
161