diff -urN oldtree/arch/i386/kernel/cpu/Makefile newtree/arch/i386/kernel/cpu/Makefile --- oldtree/arch/i386/kernel/cpu/Makefile 2006-09-24 17:03:56.000000000 -0400 +++ newtree/arch/i386/kernel/cpu/Makefile 2006-09-27 14:11:18.000000000 -0400 @@ -4,14 +4,14 @@ obj-y := common.o proc.o -obj-y += amd.o -obj-y += cyrix.o -obj-y += centaur.o -obj-y += transmeta.o -obj-y += intel.o intel_cacheinfo.o -obj-y += rise.o -obj-y += nexgen.o -obj-y += umc.o +obj-$(CONFIG_CPU_SUP_AMD) += amd.o +obj-$(CONFIG_CPU_SUP_CYRIX) += cyrix.o +obj-$(CONFIG_CPU_SUP_CENTAUR) += centaur.o +obj-$(CONFIG_CPU_SUP_TRANSMETA) += transmeta.o +obj-$(CONFIG_CPU_SUP_INTEL) += intel.o intel_cacheinfo.o +obj-$(CONFIG_CPU_SUP_RISE) += rise.o +obj-$(CONFIG_CPU_SUP_NEXGEN) += nexgen.o +obj-$(CONFIG_CPU_SUP_UMC) += umc.o obj-$(CONFIG_X86_MCE) += mcheck/ diff -urN oldtree/arch/i386/kernel/cpu/common.c newtree/arch/i386/kernel/cpu/common.c --- oldtree/arch/i386/kernel/cpu/common.c 2006-09-24 17:03:56.000000000 -0400 +++ newtree/arch/i386/kernel/cpu/common.c 2006-09-27 14:11:18.000000000 -0400 @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #ifdef CONFIG_X86_LOCAL_APIC @@ -316,7 +317,9 @@ } } +#ifdef CONFIG_CPU_SUP_INTEL early_intel_workaround(c); +#endif #ifdef CONFIG_X86_HT c->phys_proc_id = (cpuid_ebx(1) >> 24) & 0xff; @@ -563,15 +566,33 @@ void __init early_cpu_init(void) { +#ifdef CONFIG_CPU_SUP_INTEL intel_cpu_init(); +#endif +#ifdef CONFIG_CPU_SUP_CYRIX cyrix_init_cpu(); +#endif +#ifdef CONFIG_CPU_SUP_NSC nsc_init_cpu(); +#endif +#ifdef CONFIG_CPU_SUP_AMD amd_init_cpu(); +#endif +#ifdef CONFIG_CPU_SUP_CENTAUR centaur_init_cpu(); +#endif +#ifdef CONFIG_CPU_SUP_TRANSMETA transmeta_init_cpu(); +#endif +#ifdef CONFIG_CPU_SUP_RISE rise_init_cpu(); +#endif +#ifdef CONFIG_CPU_SUP_NEXGEN nexgen_init_cpu(); +#endif +#ifdef CONFIG_CPU_SUP_UMC umc_init_cpu(); +#endif early_cpu_detect(); #ifdef CONFIG_DEBUG_PAGEALLOC diff -urN oldtree/arch/i386/mm/init.c newtree/arch/i386/mm/init.c --- oldtree/arch/i386/mm/init.c 2006-09-26 18:39:54.000000000 -0400 +++ newtree/arch/i386/mm/init.c 2006-09-27 14:12:19.000000000 -0400 @@ -185,12 +185,14 @@ } } +#ifdef CONFIG_CPU_SUP_INTEL static inline int page_kills_ppro(unsigned long pagenr) { if (pagenr >= 0x70000 && pagenr <= 0x7003F) return 1; return 0; } +#endif extern int is_available_memory(efi_memory_desc_t *); @@ -283,7 +285,11 @@ int *bad) { *bad = 0; - if (page_is_ram(pfn) && !(bad_ppro && page_kills_ppro(pfn))) { + if (page_is_ram(pfn) +#ifdef CONFIG_CPU_SUP_INTEL + && !(bad_ppro && page_kills_ppro(pfn)) +#endif + ) { ClearPageReserved(page); free_new_highpage(page, bad); } else @@ -583,7 +589,11 @@ BUG(); #endif +#ifdef CONFIG_CPU_SUP_INTEL bad_ppro = ppro_with_ram_bug(); +#else + bad_ppro = 0; +#endif #ifdef CONFIG_HIGHMEM /* check that fixmap and pkmap do not overlap */ diff -urN oldtree/init/Kconfig newtree/init/Kconfig --- oldtree/init/Kconfig 2006-09-26 14:56:42.000000000 -0400 +++ newtree/init/Kconfig 2006-09-27 14:11:18.000000000 -0400 @@ -481,6 +481,69 @@ option allows the disabling of the VM event counters. /proc/vmstat will only show page counts. +menuconfig PROCESSOR_SELECT + depends X86 + default y + bool "Supported processor vendors" if EMBEDDED + help + This lets you choose what x86 vendor support code your kernel + will include. + +config CPU_SUP_INTEL + default y + bool "Support Intel processors" if PROCESSOR_SELECT + help + This enables extended support for Intel processors + +config CPU_SUP_CYRIX + default y + bool "Support Cyrix processors" if PROCESSOR_SELECT + help + This enables extended support for Cyrix processors + +config CPU_SUP_NSC + default y + bool "Support NSC processors" if PROCESSOR_SELECT + help + This enables extended support for NSC processors + +config CPU_SUP_AMD + default y + depends on CPU_SUP_INTEL + bool "Support AMD processors" if PROCESSOR_SELECT + help + This enables extended support for AMD processors + +config CPU_SUP_CENTAUR + default y + bool "Support Centaur processors" if PROCESSOR_SELECT + help + This enables extended support for Centaur processors + +config CPU_SUP_TRANSMETA + default y + bool "Support Transmeta processors" if PROCESSOR_SELECT + help + This enables extended support for Transmeta processors + +config CPU_SUP_RISE + default y + bool "Support Rise processors" if PROCESSOR_SELECT + help + This enables extended support for Rise processors + +config CPU_SUP_NEXGEN + default y + bool "Support NexGen processors" if PROCESSOR_SELECT + help + This enables extended support for NexGen processors + +config CPU_SUP_UMC + default y + bool "Support UMC processors" if PROCESSOR_SELECT + help + This enables extended support for UMC processors + endmenu # General setup config RT_MUTEXES