By default we set -mcpu=xxx compiler flag depending on the CPU ISA version. It's good starting point, however that may be not enough as for some platforms we may want to use some specific 'mcpu' options for better optimization or to workaround HW issues. We are going to use this option for HSDK-4xD board support. In addition it also allows to awoid patching 'mcpu' in ARC Makefile when we building Linux for some non-standard simulation or FPGA-based platforms. Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@xxxxxxxxxxxx> --- arch/arc/Kconfig | 7 +++++++ arch/arc/Makefile | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index ff306246d0f8..2d4f85dc914e 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -377,6 +377,13 @@ config ARC_HAS_SWAPE bool "Insn: SWAPE (endian-swap)" default y +config ARC_TUNE_MCPU + string "Overide default -mcpu compiler flag" + default "" + help + Overide default -mcpu=xxx compiler flag (which is set depending on + the ISA version) with the specified value. + if ISA_ARCV2 config ARC_USE_UNALIGNED_MEM_ACCESS diff --git a/arch/arc/Makefile b/arch/arc/Makefile index 20e9ab6cc521..eb88ba5b1573 100644 --- a/arch/arc/Makefile +++ b/arch/arc/Makefile @@ -10,8 +10,12 @@ CROSS_COMPILE := $(call cc-cross-prefix, arc-linux- arceb-linux-) endif cflags-y += -fno-common -pipe -fno-builtin -mmedium-calls -D__linux__ +ifeq ($(CONFIG_ARC_TUNE_MCPU),"") cflags-$(CONFIG_ISA_ARCOMPACT) += -mA7 cflags-$(CONFIG_ISA_ARCV2) += -mcpu=hs38 +else +cflags-y += $(shell echo $(CONFIG_ARC_TUNE_MCPU)) +endif ifdef CONFIG_ARC_CURR_IN_REG # For a global register defintion, make sure it gets passed to every file -- 2.21.3 _______________________________________________ linux-snps-arc mailing list linux-snps-arc@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-snps-arc