diff -Nur linux-2.6.8.1/arch/i386/Kconfig linux-2.6.8.1_geode/arch/i386/Kconfig --- linux-2.6.8.1/arch/i386/Kconfig Sat Aug 14 12:54:50 2004 +++ linux-2.6.8.1_geode/arch/i386/Kconfig Sat Sep 11 23:08:40 2004 @@ -179,6 +179,7 @@ - "Winchip-C6" for original IDT Winchip. - "Winchip-2" for IDT Winchip 2. - "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. - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above). @@ -301,6 +302,13 @@ stores for this CPU, which can increase performance of some 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 bool "CyrixIII/VIA-C3" help @@ -351,7 +359,7 @@ int default "7" if MPENTIUM4 || X86_GENERIC default "4" if X86_ELAN || M486 || M386 - default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 + default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE default "6" if MK7 || MK8 || MPENTIUMM config RWSEM_GENERIC_SPINLOCK @@ -366,7 +374,7 @@ config X86_PPRO_FENCE bool - depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 + depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODE default y config X86_F00F_BUG @@ -396,7 +404,7 @@ config X86_ALIGNMENT_16 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 config X86_GOOD_APIC @@ -421,7 +429,7 @@ config X86_OOSTORE bool - depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR + depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE) && MTRR default y config HPET_TIMER @@ -546,7 +554,7 @@ config X86_TSC bool - depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ + depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODE) && !X86_NUMAQ default y config X86_MCE diff -Nur linux-2.6.8.1/arch/i386/Makefile linux-2.6.8.1_geode/arch/i386/Makefile --- linux-2.6.8.1/arch/i386/Makefile Sat Aug 14 12:55:10 2004 +++ linux-2.6.8.1_geode/arch/i386/Makefile Sat Sep 11 23:27:16 2004 @@ -52,6 +52,9 @@ # AMD Elan support cflags-$(CONFIG_X86_ELAN) += -march=i486 +# MediaGX aka Geode support +cflags-$(CONFIG_X86_MGEODE) += -march=i565 + # -mregparm=3 works ok on gcc-3.0 and later # GCC_VERSION := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) diff -Nur linux-2.6.8.1/drivers/pci/probe.c linux-2.6.8.1_geode/drivers/pci/probe.c --- linux-2.6.8.1/drivers/pci/probe.c Sat Aug 14 12:55:48 2004 +++ linux-2.6.8.1_geode/drivers/pci/probe.c Sat Sep 11 23:03:41 2004 @@ -702,8 +702,11 @@ DBG("Scanning bus %02x\n", bus->number); /* Go find them, Rover! */ - for (devfn = 0; devfn < 0x100; devfn += 8) + for (devfn = 0; devfn < 0x100; devfn += 8) { pci_scan_slot(bus, devfn); + printk("."); + } + printk("\n"); /* * After performing arch-dependent fixup of the bus, look behind diff -Nur linux-2.6.8.1/include/asm-i386/module.h linux-2.6.8.1_geode/include/asm-i386/module.h --- linux-2.6.8.1/include/asm-i386/module.h Sat Aug 14 12:54:50 2004 +++ linux-2.6.8.1_geode/include/asm-i386/module.h Sat Sep 11 23:03:41 2004 @@ -50,6 +50,8 @@ #define MODULE_PROC_FAMILY "CYRIXIII " #elif defined CONFIG_MVIAC3_2 #define MODULE_PROC_FAMILY "VIAC3-2 " +#elif CONFIG_MGEODE +#define MODULE_PROC_FAMILY "GEODE " #else #error unknown processor family #endif