From d3634c108d63d07ce004a66e3abb05e8da57d65b Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Fri, 13 Nov 2015 13:28:41 -0800 Subject: rules.h: Add ENV_ macros to detect current architecture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch expands the existing ENV_ macros in with a set of ENV_ 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 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 Reviewed-on: http://review.coreboot.org/12433 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Kyösti Mälkki Tested-by: Raptor Engineering Automated Test Stand --- src/arch/arm64/armv8/Makefile.inc | 23 +++++++---------------- src/arch/arm64/include/armv8/arch/rules.h | 30 ------------------------------ 2 files changed, 7 insertions(+), 46 deletions(-) delete mode 100644 src/arch/arm64/include/armv8/arch/rules.h (limited to 'src/arch/arm64') 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 */ -- cgit v1.2.3