summaryrefslogtreecommitdiff
path: root/src/arch/arm64
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2015-11-13 13:28:41 -0800
committerJulius Werner <jwerner@chromium.org>2015-11-17 21:31:07 +0100
commitd3634c108d63d07ce004a66e3abb05e8da57d65b (patch)
treefaa8038ed49e4041d3eee01c8a2ca1add304b569 /src/arch/arm64
parent0dc6a1e8987597ce234f2a4f54932219cd5e2480 (diff)
downloadcoreboot-d3634c108d63d07ce004a66e3abb05e8da57d65b.tar.xz
rules.h: Add ENV_ macros to detect current architecture
This patch expands the existing ENV_<stage> macros in <rules.h> with a set of ENV_<arch> macros which can be used to detect which architecture the current compilation unit is built for. These are more consistent than compiler-defined macros (like '#ifdef __arm__') and will make it easier to write small, architecture-dependent differences in common code (where we currently often use IS_ENABLED(CONFIG_ARCH_...), which is technically incorrect in a world where every stage can run on a different architecture, and merely kinda happened to work out for now). Also remove a vestigal <arch/rules.h> from ARM64 which was no longer used, and genericise ARM subarchitecture Makefiles a little to make things like __COREBOOT_ARM_ARCH__ available from all file types (including .ld). BUG=None TEST=Compiled Falco, Blaze, Jerry and Smaug. Change-Id: Id51aeb290b5c215c653e42a51919d0838e28621f Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: http://review.coreboot.org/12433 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Diffstat (limited to 'src/arch/arm64')
-rw-r--r--src/arch/arm64/armv8/Makefile.inc23
-rw-r--r--src/arch/arm64/include/armv8/arch/rules.h30
2 files changed, 7 insertions, 46 deletions
diff --git a/src/arch/arm64/armv8/Makefile.inc b/src/arch/arm64/armv8/Makefile.inc
index f25a567b29..53d0e46d37 100644
--- a/src/arch/arm64/armv8/Makefile.inc
+++ b/src/arch/arm64/armv8/Makefile.inc
@@ -19,8 +19,6 @@ subdirs-y += lib/
armv8_flags = -march=armv8-a -I$(src)/arch/arm64/include/armv8/ -D__COREBOOT_ARM_ARCH__=8
-armv8_asm_flags = $(armv8_flags)
-
################################################################################
## bootblock
################################################################################
@@ -34,8 +32,7 @@ bootblock-y += cache_helpers.S
bootblock-y += cpu.S
bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += exception.c
-bootblock-c-ccopts += $(armv8_flags)
-bootblock-S-ccopts += $(armv8_asm_flags)
+bootblock-generic-ccopts += $(armv8_flags)
# Required to access unaligned timestamp struct members before MMU is active
# (TODO: Maybe use explicit unaligned accesses in timestamp code instead, or
@@ -54,10 +51,8 @@ verstage-y += cpu.S
verstage-y += cache_helpers.S
verstage-y += exception.c
-libverstage-c-ccopts += $(armv8_flags)
-libverstage-S-ccopts += $(armv8_asm_flags)
-verstage-c-ccopts += $(armv8_flags)
-verstage-S-ccopts += $(armv8_asm_flags)
+libverstage-generic-ccopts += $(armv8_flags)
+verstage-generic-ccopts += $(armv8_flags)
endif
@@ -71,11 +66,9 @@ romstage-y += cache_helpers.S
romstage-y += cpu.S
romstage-y += exception.c
-romstage-c-ccopts += $(armv8_flags)
-romstage-S-ccopts += $(armv8_asm_flags)
+romstage-generic-ccopts += $(armv8_flags)
-rmodules_arm64-c-ccopts += $(armv8_flags)
-rmodules_arm64-S-ccopts += $(armv8_asm_flags)
+rmodules_arm64-generic-ccopts += $(armv8_flags)
endif
@@ -90,10 +83,8 @@ ramstage-y += cpu.S
ramstage-y += exception.c
ramstage-y += mmu.c
-ramstage-c-ccopts += $(armv8_flags)
-ramstage-S-ccopts += $(armv8_asm_flags)
+ramstage-generic-ccopts += $(armv8_flags)
-rmodules_arm64-c-ccopts += $(armv8_flags)
-rmodules_arm64-S-ccopts += $(armv8_asm_flags)
+rmodules_arm64-generic-ccopts += $(armv8_flags)
endif
diff --git a/src/arch/arm64/include/armv8/arch/rules.h b/src/arch/arm64/include/armv8/arch/rules.h
deleted file mode 100644
index a252894345..0000000000
--- a/src/arch/arm64/include/armv8/arch/rules.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef _ARCH_RULES_H
-#define _ARCH_RULES_H
-
-/* For romstage and ramstage always build with simple device model, ie.
- * PCI, PNP and CPU functions operate without use of devicetree.
- *
- * For ramstage individual source file may define __SIMPLE_DEVICE__
- * before including any header files to force that particular source
- * be built with simple device model.
- */
-
-#if defined(__PRE_RAM__)
-#define __SIMPLE_DEVICE__
-#endif
-
-#endif /* _ARCH_RULES_H */