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