Commit 8a59ebd4 authored by kianusch@sk-tech.net's avatar kianusch@sk-tech.net Committed by Linus Torvalds

[PATCH] Support for GEODE CPUs

Those CPU's are found mostly in embedded systems ...  one of the most
prominent Hardware using GEODE CPU is probably soekris net4801
(http://www.soekris.com).

This patch has been on my homepage
(http://www.sk-tech.net/support/soekris.html) for quite a time - but I've
been asked several time to have it included in the main kernel.
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent bf9c6f42
...@@ -183,6 +183,7 @@ config M386 ...@@ -183,6 +183,7 @@ config M386
- "Winchip-C6" for original IDT Winchip. - "Winchip-C6" for original IDT Winchip.
- "Winchip-2" for IDT Winchip 2. - "Winchip-2" for IDT Winchip 2.
- "Winchip-2A" for IDT Winchips with 3dNow! capabilities. - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
- "MediaGX/Geode" for Cyrix MediaGX aka Geode.
- "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3. - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
- "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above). - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
...@@ -310,6 +311,13 @@ config MWINCHIP3D ...@@ -310,6 +311,13 @@ config MWINCHIP3D
stores for this CPU, which can increase performance of some stores for this CPU, which can increase performance of some
operations. operations.
config MGEODE
bool "MediaGX/Geode"
help
Select this for a Cyrix MediaGX aka Geode chip. Linux and GCC
treat this chip as a 586TSC with some extended instructions
and alignment reqirements.
config MCYRIXIII config MCYRIXIII
bool "CyrixIII/VIA-C3" bool "CyrixIII/VIA-C3"
help help
...@@ -360,7 +368,7 @@ config X86_L1_CACHE_SHIFT ...@@ -360,7 +368,7 @@ config X86_L1_CACHE_SHIFT
int int
default "7" if MPENTIUM4 || X86_GENERIC default "7" if MPENTIUM4 || X86_GENERIC
default "4" if X86_ELAN || M486 || M386 default "4" if X86_ELAN || M486 || M386
default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE
default "6" if MK7 || MK8 || MPENTIUMM default "6" if MK7 || MK8 || MPENTIUMM
config RWSEM_GENERIC_SPINLOCK config RWSEM_GENERIC_SPINLOCK
...@@ -379,7 +387,7 @@ config GENERIC_CALIBRATE_DELAY ...@@ -379,7 +387,7 @@ config GENERIC_CALIBRATE_DELAY
config X86_PPRO_FENCE config X86_PPRO_FENCE
bool bool
depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODE
default y default y
config X86_F00F_BUG config X86_F00F_BUG
...@@ -409,7 +417,7 @@ config X86_POPAD_OK ...@@ -409,7 +417,7 @@ config X86_POPAD_OK
config X86_ALIGNMENT_16 config X86_ALIGNMENT_16
bool bool
depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODE
default y default y
config X86_GOOD_APIC config X86_GOOD_APIC
...@@ -434,7 +442,7 @@ config X86_USE_3DNOW ...@@ -434,7 +442,7 @@ config X86_USE_3DNOW
config X86_OOSTORE config X86_OOSTORE
bool bool
depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE) && MTRR
default y default y
config HPET_TIMER config HPET_TIMER
...@@ -570,7 +578,7 @@ config X86_IO_APIC ...@@ -570,7 +578,7 @@ config X86_IO_APIC
config X86_TSC config X86_TSC
bool bool
depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODE) && !X86_NUMAQ
default y default y
config X86_MCE config X86_MCE
......
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
# 19990713 Artur Skawina <skawina@geocities.com> # 19990713 Artur Skawina <skawina@geocities.com>
# Added '-march' and '-mpreferred-stack-boundary' support # Added '-march' and '-mpreferred-stack-boundary' support
# #
# Kianusch Sayah Karadji <kianusch@sk-tech.net>
# Added support for GEODE CPU
LDFLAGS := -m elf_i386 LDFLAGS := -m elf_i386
OBJCOPYFLAGS := -O binary -R .note -R .comment -S OBJCOPYFLAGS := -O binary -R .note -R .comment -S
...@@ -52,6 +54,9 @@ cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686) ...@@ -52,6 +54,9 @@ cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686)
# AMD Elan support # AMD Elan support
cflags-$(CONFIG_X86_ELAN) += -march=i486 cflags-$(CONFIG_X86_ELAN) += -march=i486
# MediaGX aka Geode support
cflags-$(CONFIG_MGEODE) += $(call cc-option,-march=pentium-mmx,-march=i586)
# -mregparm=3 works ok on gcc-3.0 and later # -mregparm=3 works ok on gcc-3.0 and later
# #
GCC_VERSION := $(call cc-version) GCC_VERSION := $(call cc-version)
......
...@@ -52,6 +52,8 @@ struct mod_arch_specific ...@@ -52,6 +52,8 @@ struct mod_arch_specific
#define MODULE_PROC_FAMILY "CYRIXIII " #define MODULE_PROC_FAMILY "CYRIXIII "
#elif defined CONFIG_MVIAC3_2 #elif defined CONFIG_MVIAC3_2
#define MODULE_PROC_FAMILY "VIAC3-2 " #define MODULE_PROC_FAMILY "VIAC3-2 "
#elif CONFIG_MGEODE
#define MODULE_PROC_FAMILY "GEODE "
#else #else
#error unknown processor family #error unknown processor family
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment