[U-Boot] [PATCH] MIPS: Kconfig: optimize gcc -march and -mtune setup

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Sat Dec 26 19:55:37 CET 2015


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 at live.com>
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>

---

 arch/mips/Kconfig               | 12 +++++++++++-
 arch/mips/Makefile              | 13 +++++++++++++
 arch/mips/config.mk             |  6 ------
 arch/mips/mach-au1x00/config.mk |  8 --------
 4 files changed, 24 insertions(+), 15 deletions(-)
 delete mode 100644 arch/mips/mach-au1x00/config.mk

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 7f7e258..388e4c0 100644
--- a/arch/mips/Kconfig
+++ b/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
 
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 6a9f798..90cd590 100644
--- a/arch/mips/Makefile
+++ b/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)
diff --git a/arch/mips/config.mk b/arch/mips/config.mk
index 3ebc202..bf8dd9c 100644
--- a/arch/mips/config.mk
+++ b/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__
 
 #
diff --git a/arch/mips/mach-au1x00/config.mk b/arch/mips/mach-au1x00/config.mk
deleted file mode 100644
index 5c89129..0000000
--- a/arch/mips/mach-au1x00/config.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# (C) Copyright 2011
-# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
-#
-# SPDX-License-Identifier:	GPL-2.0+
-#
-
-PLATFORM_CPPFLAGS += -mtune=4kc
-- 
2.5.0



More information about the U-Boot mailing list