Jelajahi Sumber

MIPS: Kconfig: optimize gcc -march and -mtune setup

Move setup of -march to arch/mips/Makefile and follow the design on ARM.
Also add a possibility to chose specific CPU tune options.

Signed-off-by: Wills Wang <wills.wang@live.com>
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Daniel Schwierzeck 9 tahun lalu
induk
melakukan
0315a28909
4 mengubah file dengan 24 tambahan dan 15 penghapusan
  1. 11 1
      arch/mips/Kconfig
  2. 13 0
      arch/mips/Makefile
  3. 0 6
      arch/mips/config.mk
  4. 0 8
      arch/mips/mach-au1x00/config.mk

+ 11 - 1
arch/mips/Kconfig

@@ -43,6 +43,7 @@ config TARGET_DBAU1X00
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	select SYS_MIPS_CACHE_INIT_RAM_LOAD
+	select MIPS_TUNE_4KC
 
 config TARGET_PB1X00
 	bool "Support pb1x00"
@@ -50,7 +51,7 @@ config TARGET_PB1X00
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	select SYS_MIPS_CACHE_INIT_RAM_LOAD
-
+	select MIPS_TUNE_4KC
 
 endchoice
 
@@ -174,6 +175,15 @@ config CPU_MIPS64
 	bool
 	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
 
+config MIPS_TUNE_4KC
+	bool
+
+config MIPS_TUNE_14KC
+	bool
+
+config MIPS_TUNE_24KC
+	bool
+
 config 32BIT
 	bool
 

+ 13 - 0
arch/mips/Makefile

@@ -13,3 +13,16 @@ machdirs := $(patsubst %,arch/mips/mach-%/,$(machine-y))
 libs-y += $(machdirs)
 
 PLATFORM_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
+
+# Optimize for MIPS architectures
+arch-$(CONFIG_CPU_MIPS32_R1) += -march=mips32 -Wa,-mips32
+arch-$(CONFIG_CPU_MIPS32_R2) += -march=mips32r2 -Wa,-mips32r2
+arch-$(CONFIG_CPU_MIPS64_R1) += -march=mips64 -Wa,-mips64
+arch-$(CONFIG_CPU_MIPS64_R2) += -march=mips64r2 -Wa,-mips64r2
+
+# Allow extra optimization for specific CPUs/SoCs
+tune-$(CONFIG_MIPS_TUNE_4KC) += -mtune=4kc
+tune-$(CONFIG_MIPS_TUNE_14KC) += -mtune=14kc
+tune-$(CONFIG_MIPS_TUNE_24KC) += -mtune=24kc
+
+PLATFORM_CPPFLAGS += $(arch-y) $(tune-y)

+ 0 - 6
arch/mips/config.mk

@@ -35,12 +35,6 @@ PLATFORM_LDFLAGS	+= -m$(64bit-emul)
 OBJCOPYFLAGS		+= -O $(64bit-bfd)
 endif
 
-cpuflags-$(CONFIG_CPU_MIPS32_R1) += -march=mips32 -Wa,-mips32
-cpuflags-$(CONFIG_CPU_MIPS32_R2) += -march=mips32r2 -Wa,-mips32r2
-cpuflags-$(CONFIG_CPU_MIPS64_R1) += -march=mips64 -Wa,-mips64
-cpuflags-$(CONFIG_CPU_MIPS64_R2) += -march=mips64r2 -Wa,-mips64r2
-PLATFORM_CPPFLAGS += $(cpuflags-y)
-
 PLATFORM_CPPFLAGS += -D__MIPS__
 
 #

+ 0 - 8
arch/mips/mach-au1x00/config.mk

@@ -1,8 +0,0 @@
-#
-# (C) Copyright 2011
-# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-#
-# SPDX-License-Identifier:	GPL-2.0+
-#
-
-PLATFORM_CPPFLAGS += -mtune=4kc