blob: 5675a26b0a164f35d3517ac16a38a6147ff2f78a [file] [log] [blame]
Patrick Georgi864dc3b2020-03-04 13:59:17 +01001## SPDX-License-Identifier: GPL-2.0-only
Gabe Black51edd542013-09-30 23:00:33 -07002
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -07003armv7_flags = -mthumb -I$(src)/arch/arm/include/armv7/ -D__COREBOOT_ARM_ARCH__=7
Hakim Giydan43e5b572016-09-08 10:13:59 -07004armv7-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__
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -07007
Martin Roth6cf181a2022-11-15 19:24:14 -07008armv7_asm_flags = -Wa,-mthumb -Wa,-mimplicit-it=always
9ifeq ($(CONFIG_COMPILER_GCC),y)
10armv7_asm_flags += -Wa,-mno-warn-deprecated
11endif
Hakim Giydan43e5b572016-09-08 10:13:59 -070012armv7-r_asm_flags = $(armv7-r_flags) $(armv7_asm_flags)
Gabe Black51edd542013-09-30 23:00:33 -070013
14###############################################################################
15# bootblock
16###############################################################################
17
18ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV7),y)
Julius Werner99f46832018-05-16 14:14:04 -070019decompressor-generic-ccopts += $(armv7-a_flags)
20decompressor-S-ccopts += $(armv7_asm_flags)
Julius Wernerd3634c12015-11-13 13:28:41 -080021bootblock-generic-ccopts += $(armv7-a_flags)
22bootblock-S-ccopts += $(armv7_asm_flags)
Gabe Black51edd542013-09-30 23:00:33 -070023
Julius Werner86fc11d2015-10-09 13:37:58 -070024ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y)
Julius Werner99f46832018-05-16 14:14:04 -070025decompressor-y += bootblock.S
26ifneq ($(CONFIG_COMPRESS_BOOTBLOCK),y)
Gabe Black51edd542013-09-30 23:00:33 -070027bootblock-y += bootblock.S
Gabe Black51edd542013-09-30 23:00:33 -070028endif
Julius Werner99f46832018-05-16 14:14:04 -070029endif
Gabe Black51edd542013-09-30 23:00:33 -070030
Julius Werner99f46832018-05-16 14:14:04 -070031decompressor-y += cache.c
Gabe Black51edd542013-09-30 23:00:33 -070032bootblock-y += cache.c
Julius Werner99f46832018-05-16 14:14:04 -070033decompressor-y += cpu.S
Julius Werner1f8d2462014-01-15 14:13:25 -080034bootblock-y += cpu.S
Julius Werner99f46832018-05-16 14:14:04 -070035decompressor-y += mmu.c
36bootblock-y += mmu.c
37
Julius Werner85620db2013-11-13 18:22:15 -080038bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += exception.c
39bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += exception_asm.S
Gabe Black51edd542013-09-30 23:00:33 -070040
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -070041else ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV7_M),y)
Julius Wernerd3634c12015-11-13 13:28:41 -080042bootblock-generic-ccopts += $(armv7-m_flags)
43bootblock-S-ccopts += $(armv7_asm_flags)
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -070044
Julius Werner86fc11d2015-10-09 13:37:58 -070045ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y)
Daisuke Nojiric5a4c122014-10-23 11:51:18 -070046bootblock-y += bootblock_m.S
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -070047endif
Hakim Giydan43e5b572016-09-08 10:13:59 -070048bootblock-y += exception_mr.c
Daisuke Nojiriaf3b2a12014-10-23 12:39:11 -070049bootblock-y += cache_m.c
Gabe Black51edd542013-09-30 23:00:33 -070050
Hakim Giydan43e5b572016-09-08 10:13:59 -070051else ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV7_R),y)
52bootblock-generic-ccopts += $(armv7-r_flags)
53bootblock-S-ccopts += $(armv7-r_asm_flags)
54
55ifneq ($(CONFIG_BOOTBLOCK_CUSTOM),y)
56bootblock-y += bootblock.S
57endif
58
59bootblock-y += cache.c
60bootblock-y += cpu.S
61bootblock-y += exception_mr.c
62bootblock-y += mmu.c
63
Gabe Black51edd542013-09-30 23:00:33 -070064endif # CONFIG_ARCH_BOOTBLOCK_ARMV7
65
Daisuke Nojiribcc1d422014-06-19 19:16:24 -070066################################################################################
67## verification stage
68################################################################################
69
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -070070ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV7),y)
Julius Wernerd3634c12015-11-13 13:28:41 -080071verstage-generic-ccopts += $(armv7-a_flags)
72verstage-S-ccopts += $(armv7_asm_flags)
Furquan Shaikhdfb8eb12014-10-02 16:27:52 -070073
Daisuke Nojiribcc1d422014-06-19 19:16:24 -070074verstage-y += cache.c
75verstage-y += cpu.S
76verstage-y += exception.c
77verstage-y += exception_asm.S
78verstage-y += mmu.c
79
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -070080else ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV7_M),y)
Julius Wernerd3634c12015-11-13 13:28:41 -080081verstage-generic-ccopts += $(armv7-m_flags)
82verstage-S-ccopts += $(armv7_asm_flags)
Furquan Shaikhdfb8eb12014-10-02 16:27:52 -070083
Hakim Giydan43e5b572016-09-08 10:13:59 -070084else ifeq ($(CONFIG_ARCH_VERSTAGE_ARMV7_R),y)
Hakim Giydan43e5b572016-09-08 10:13:59 -070085verstage-generic-ccopts += $(armv7-r_flags)
86verstage-S-ccopts += $(armv7-r_asm_flags)
87
88verstage-y += cache.c
89verstage-y += cpu.S
90verstage-y += exception_mr.c
91verstage-y += mmu.c
92
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -070093endif # CONFIG_ARCH_VERSTAGE_ARMV7_M
Gabe Black51edd542013-09-30 23:00:33 -070094
Daisuke Nojiri93d8e3c2014-10-21 11:18:20 -070095################################################################################
96## ROM stage
97################################################################################
Gabe Black51edd542013-09-30 23:00:33 -070098ifeq ($(CONFIG_ARCH_ROMSTAGE_ARMV7),y)
Gabe Black51edd542013-09-30 23:00:33 -070099romstage-y += cache.c
Julius Werner1f8d2462014-01-15 14:13:25 -0800100romstage-y += cpu.S
Hung-Te Lin2fc3b622013-10-21 21:43:03 +0800101romstage-y += exception.c
102romstage-y += exception_asm.S
103romstage-y += mmu.c
Gabe Black51edd542013-09-30 23:00:33 -0700104
Julius Wernerd3634c12015-11-13 13:28:41 -0800105romstage-generic-ccopts += $(armv7-a_flags)
106romstage-S-ccopts += $(armv7_asm_flags)
Gabe Black51edd542013-09-30 23:00:33 -0700107
Julius Wernerd3634c12015-11-13 13:28:41 -0800108rmodules_arm-generic-ccopts += $(armv7-a_flags)
109rmodules_arm-S-ccopts += $(armv7_asm_flags)
Furquan Shaikha742ef12014-07-23 11:41:59 -0700110
Hakim Giydan43e5b572016-09-08 10:13:59 -0700111else ifeq ($(CONFIG_ARCH_ROMSTAGE_ARMV7_R),y)
112romstage-y += cache.c
113romstage-y += cpu.S
114romstage-y += exception_mr.c
115romstage-y += mmu.c
116
117romstage-generic-ccopts += $(armv7-r_flags)
118romstage-S-ccopts += $(armv7-r_asm_flags)
119
120rmodules_arm-generic-ccopts += $(armv7-r_flags)
121rmodules_arm-S-ccopts += $(armv7-r_asm_flags)
122
Gabe Black51edd542013-09-30 23:00:33 -0700123endif # CONFIG_ARCH_ROMSTAGE_ARMV7
124
125###############################################################################
126# ramstage
127###############################################################################
128
129ifeq ($(CONFIG_ARCH_RAMSTAGE_ARMV7),y)
130
131ramstage-y += cache.c
Julius Werner1f8d2462014-01-15 14:13:25 -0800132ramstage-y += cpu.S
Gabe Black51edd542013-09-30 23:00:33 -0700133ramstage-y += exception.c
134ramstage-y += exception_asm.S
135ramstage-y += mmu.c
136
Julius Wernerd3634c12015-11-13 13:28:41 -0800137ramstage-generic-ccopts += $(armv7-a_flags)
138ramstage-S-ccopts += $(armv7_asm_flags)
Gabe Black51edd542013-09-30 23:00:33 -0700139
Aaron Durbin703e5072014-03-20 15:02:17 -0500140# All rmodule code is armv7 if ramstage is armv7.
Julius Wernerd3634c12015-11-13 13:28:41 -0800141rmodules_arm-generic-ccopts += $(armv7-a_flags)
142rmodules_arm-S-ccopts += $(armv7_asm_flags)
Hakim Giydan43e5b572016-09-08 10:13:59 -0700143
144else ifeq ($(CONFIG_ARCH_RAMSTAGE_ARMV7_R),y)
145
146ramstage-y += cache.c
147ramstage-y += cpu.S
148ramstage-y += exception_mr.c
149ramstage-y += mmu.c
150
151ramstage-generic-ccopts += $(armv7-r_flags)
152ramstage-S-ccopts += $(armv7-r_asm_flags)
153
154# All rmodule code is armv7 if ramstage is armv7.
155rmodules_arm-generic-ccopts += $(armv7-r_flags)
156rmodules_arm-S-ccopts += $(armv7-r_asm_flags)
157
Gabe Black51edd542013-09-30 23:00:33 -0700158endif # CONFIG_ARCH_RAMSTAGE_ARMV7