diff -Nur linux-2.6.10/arch/i386/Kconfig linux-2.6.10_geode/arch/i386/Kconfig --- linux-2.6.10/arch/i386/Kconfig Fri Dec 24 22:34:01 2004 +++ linux-2.6.10_geode/arch/i386/Kconfig Sun Feb 27 22:37:48 2005 @@ -183,6 +183,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). @@ -310,6 +311,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 @@ -360,7 +368,7 @@ int default "7" if MPENTIUM4 || X86_GENERIC 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 config RWSEM_GENERIC_SPINLOCK @@ -375,7 +383,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 @@ -405,7 +413,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 @@ -430,7 +438,7 @@ config X86_OOSTORE bool - depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR + depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE) && MTRR default y config HPET_TIMER @@ -555,7 +563,7 @@ config X86_TSC 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 config X86_MCE diff -Nur linux-2.6.10/arch/i386/Makefile linux-2.6.10_geode/arch/i386/Makefile --- linux-2.6.10/arch/i386/Makefile Fri Dec 24 22:34:31 2004 +++ linux-2.6.10_geode/arch/i386/Makefile Sun Feb 27 22:34:19 2005 @@ -52,6 +52,9 @@ # AMD Elan support 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 # GCC_VERSION := $(call cc-version) diff -Nur linux-2.6.10/drivers/pci/probe.c linux-2.6.10_geode/drivers/pci/probe.c --- linux-2.6.10/drivers/pci/probe.c Fri Dec 24 22:35:23 2004 +++ linux-2.6.10_geode/drivers/pci/probe.c Sun Feb 27 22:34:19 2005 @@ -723,8 +723,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.10/include/asm-i386/module.h linux-2.6.10_geode/include/asm-i386/module.h --- linux-2.6.10/include/asm-i386/module.h Fri Dec 24 22:34:00 2004 +++ linux-2.6.10_geode/include/asm-i386/module.h Sun Feb 27 22:34:19 2005 @@ -52,6 +52,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