This patch adds tuning options similar to ppc32. In addition one can choose to 
compile exclusive for the selected (and higher) cpus.

Subject: [PATCH] add tune options to Kconfig.cputypes

---
 arch/powerpc/platforms/Kconfig.cputype |   79 ++++++++++++++++++++++++-------
 1 files changed, 61 insertions(+), 18 deletions(-)

diff --git a/arch/powerpc/platforms/Kconfig.cputype 
b/arch/powerpc/platforms/Kconfig.cputype
index 5bc4b61..88e6ce2 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -54,35 +54,78 @@ config E200
 
 endchoice
 
-config POWER4_ONLY
-       bool "Optimize for POWER4"
+choice
+       prompt "Processor Type"
        depends on PPC64
+       default TUNE_POWER4
+       help
+         There are serveral families of 64 bit PowerPC chips supported.
+         These include the RS64, Power3 to Power6 series, 970, and 
+         Cell BE based CPUs made be IBM.
+
+         If unsure, select Power4.
+
+config TUNE_RS64
+       bool "RS64"
+
+config TUNE_POWER3
+       bool "Power3"
+
+config TUNE_POWER4
+       bool "Power4"
+
+config TUNE_970
+       bool "970/G5"
+
+config TUNE_POWER5
+       bool "Power5"
+
+config TUNE_POWER6
+       bool "Power6"
+
+config TUNE_CELL
+       bool "Cell Broadband Engine"
+       help
+         Cause the compiler to optimize for the PPE of the Cell Broadband
+         Engine. This will make the code run considerably faster on Cell
+         but somewhat slower on other machines. If the resulting kernel is
+         built to run only on Cell BE machines, select also OPT_EXCLUSIVE.
+
+endchoice
+
+config OPT_EXCLUSIVE
+       bool "Optimize to run exclusive on selected CPU"
        default n
-       ---help---
-         Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
-         The resulting binary will not work on POWER3 or RS64 processors
-         when compiled with binutils 2.15 or later.
+       help
+         Cause the compiler to optimize to run exclusive on the selected
+         CPU. The resulting binary will probably not work on older CPUs, 
+         but should work on newer ones.
+         
+         See the following chart for supported PPC64 CPU generations.
+         
+         older <------------------------------> newer
+
+         RS64 -> POWER3 -> POWER4 -> POWER5 -> POWER6
+                           970/G5
+                           CELL BE
+                           PA6T
+         
+         If the compiler/binutils combination does not support the exclusive
+         optimization, it will try to tune only or fail.
+         
+         If you are unsure, select no.
 
 config POWER3
-       bool
        depends on PPC64
-       default y if !POWER4_ONLY
+       def_bool y if !POWER4_ONLY
 
 config POWER4
        depends on PPC64
        def_bool y
 
-config TUNE_CELL
-       bool "Optimize for Cell Broadband Engine"
+config POWER4_ONLY
        depends on PPC64
-       help
-         Cause the compiler to optimize for the PPE of the Cell Broadband
-         Engine. This will make the code run considerably faster on Cell
-         but somewhat slower on other machines. This option only changes
-         the scheduling of instructions, not the selection of instructions
-         itself, so the resulting kernel will keep running on all other
-         machines. When building a kernel that is supposed to run only
-         on Cell, you should also select the POWER4_ONLY option.
+       def_bool y if TUNE_POWER4 && OPT_EXCLUSIVE
 
 config 6xx
        bool
-- 
1.5.6.2

_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to