diff options
author | Andi Kleen <ak@suse.de> | 2006-12-06 20:14:09 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:09 -0500 |
commit | c55d92d141b9c40c67db249de91f5c224eb49859 (patch) | |
tree | 578a34bf9768bb418d820395415cbd27acc54c1b | |
parent | 713819989aa4dd141a37074dbc369e7c620bc619 (diff) |
[PATCH] i386: Add support for compilation for Core2
gcc doesn't support -mtune=core2 yet, but will be soon. Use -mtune=generic or -mtune=i686
as fallback
TBD need benchmarking for INTEL_USERCOPY etc. So far I used the same defaults as MPENTIUMM
Signed-off-by: Andi Kleen <ak@suse.de>
-rw-r--r-- | arch/i386/Kconfig.cpu | 19 | ||||
-rw-r--r-- | arch/i386/Makefile.cpu | 1 | ||||
-rw-r--r-- | include/asm-i386/module.h | 2 |
3 files changed, 16 insertions, 6 deletions
diff --git a/arch/i386/Kconfig.cpu b/arch/i386/Kconfig.cpu index fc4f2abccf06..821fd269ca58 100644 --- a/arch/i386/Kconfig.cpu +++ b/arch/i386/Kconfig.cpu | |||
@@ -103,8 +103,15 @@ config MPENTIUMM | |||
103 | Select this for Intel Pentium M (not Pentium-4 M) | 103 | Select this for Intel Pentium M (not Pentium-4 M) |
104 | notebook chips. | 104 | notebook chips. |
105 | 105 | ||
106 | config MCORE2 | ||
107 | bool "Core 2/newer Xeon" | ||
108 | help | ||
109 | Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) | ||
110 | CPUs. You can distingush newer from older Xeons by the CPU family | ||
111 | in /proc/cpuinfo. Newer ones have 6. | ||
112 | |||
106 | config MPENTIUM4 | 113 | config MPENTIUM4 |
107 | bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon" | 114 | bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon" |
108 | help | 115 | help |
109 | Select this for Intel Pentium 4 chips. This includes the | 116 | Select this for Intel Pentium 4 chips. This includes the |
110 | Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M | 117 | Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M |
@@ -229,7 +236,7 @@ config X86_L1_CACHE_SHIFT | |||
229 | default "7" if MPENTIUM4 || X86_GENERIC | 236 | default "7" if MPENTIUM4 || X86_GENERIC |
230 | default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 | 237 | default "4" if X86_ELAN || M486 || M386 || MGEODEGX1 |
231 | default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX | 238 | default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX |
232 | default "6" if MK7 || MK8 || MPENTIUMM | 239 | default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 |
233 | 240 | ||
234 | config RWSEM_GENERIC_SPINLOCK | 241 | config RWSEM_GENERIC_SPINLOCK |
235 | bool | 242 | bool |
@@ -287,17 +294,17 @@ config X86_ALIGNMENT_16 | |||
287 | 294 | ||
288 | config X86_GOOD_APIC | 295 | config X86_GOOD_APIC |
289 | bool | 296 | bool |
290 | depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON | 297 | depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON || MCORE2 |
291 | default y | 298 | default y |
292 | 299 | ||
293 | config X86_INTEL_USERCOPY | 300 | config X86_INTEL_USERCOPY |
294 | bool | 301 | bool |
295 | depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON | 302 | depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2 |
296 | default y | 303 | default y |
297 | 304 | ||
298 | config X86_USE_PPRO_CHECKSUM | 305 | config X86_USE_PPRO_CHECKSUM |
299 | bool | 306 | bool |
300 | depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON || MGEODE_LX | 307 | depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON || MGEODE_LX || MCORE2 |
301 | default y | 308 | default y |
302 | 309 | ||
303 | config X86_USE_3DNOW | 310 | config X86_USE_3DNOW |
@@ -312,5 +319,5 @@ config X86_OOSTORE | |||
312 | 319 | ||
313 | config X86_TSC | 320 | config X86_TSC |
314 | bool | 321 | bool |
315 | depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1 || MGEODE_LX) && !X86_NUMAQ | 322 | depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ |
316 | default y | 323 | default y |
diff --git a/arch/i386/Makefile.cpu b/arch/i386/Makefile.cpu index a11befba26d5..a32c031c90d7 100644 --- a/arch/i386/Makefile.cpu +++ b/arch/i386/Makefile.cpu | |||
@@ -32,6 +32,7 @@ cflags-$(CONFIG_MWINCHIP2) += $(call cc-option,-march=winchip2,-march=i586) | |||
32 | cflags-$(CONFIG_MWINCHIP3D) += $(call cc-option,-march=winchip2,-march=i586) | 32 | cflags-$(CONFIG_MWINCHIP3D) += $(call cc-option,-march=winchip2,-march=i586) |
33 | cflags-$(CONFIG_MCYRIXIII) += $(call cc-option,-march=c3,-march=i486) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0 | 33 | cflags-$(CONFIG_MCYRIXIII) += $(call cc-option,-march=c3,-march=i486) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0 |
34 | cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686) | 34 | cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686) |
35 | cflags-$(CONFIG_MCORE2) += -march=i686 $(call cc-option,-mtune=core2,$(call cc-option,-mtune=generic,-mtune=i686)) | ||
35 | 36 | ||
36 | # AMD Elan support | 37 | # AMD Elan support |
37 | cflags-$(CONFIG_X86_ELAN) += -march=i486 | 38 | cflags-$(CONFIG_X86_ELAN) += -march=i486 |
diff --git a/include/asm-i386/module.h b/include/asm-i386/module.h index 424661d25bd3..fe5ae42e0273 100644 --- a/include/asm-i386/module.h +++ b/include/asm-i386/module.h | |||
@@ -20,6 +20,8 @@ struct mod_arch_specific | |||
20 | #define MODULE_PROC_FAMILY "586TSC " | 20 | #define MODULE_PROC_FAMILY "586TSC " |
21 | #elif defined CONFIG_M586MMX | 21 | #elif defined CONFIG_M586MMX |
22 | #define MODULE_PROC_FAMILY "586MMX " | 22 | #define MODULE_PROC_FAMILY "586MMX " |
23 | #elif defined CONFIG_MCORE2 | ||
24 | #define MODULE_PROC_FAMILY "CORE2 " | ||
23 | #elif defined CONFIG_M686 | 25 | #elif defined CONFIG_M686 |
24 | #define MODULE_PROC_FAMILY "686 " | 26 | #define MODULE_PROC_FAMILY "686 " |
25 | #elif defined CONFIG_MPENTIUMII | 27 | #elif defined CONFIG_MPENTIUMII |