Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / arch / i386 / kernel / setup.c
index 7b949e2..dd6b0e3 100644 (file)
  * This file handles the architecture-dependent parts of initialization
  */
 
+#include <linux/config.h>
 #include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/mmzone.h>
-#include <linux/screen_info.h>
+#include <linux/tty.h>
 #include <linux/ioport.h>
 #include <linux/acpi.h>
 #include <linux/apm_bios.h>
@@ -59,9 +60,8 @@
 #include <asm/io_apic.h>
 #include <asm/ist.h>
 #include <asm/io.h>
-#include <setup_arch.h>
+#include "setup_arch_pre.h"
 #include <bios_ebda.h>
-#include <asm/apic.h>
 
 /* Forward Declaration. */
 void __init find_max_pfn(void);
@@ -410,8 +410,8 @@ static void __init limit_regions(unsigned long long size)
        }
 }
 
-void __init add_memory_region(unsigned long long start,
-                             unsigned long long size, int type)
+static void __init add_memory_region(unsigned long long start,
+                                  unsigned long long size, int type)
 {
        int x;
 
@@ -474,7 +474,7 @@ static struct change_member *change_point[2*E820MAX] __initdata;
 static struct e820entry *overlap_list[E820MAX] __initdata;
 static struct e820entry new_bios[E820MAX] __initdata;
 
-int __init sanitize_e820_map(struct e820entry * biosmap, char * pnr_map)
+static int __init sanitize_e820_map(struct e820entry * biosmap, char * pnr_map)
 {
        struct change_member *change_tmp;
        unsigned long current_type, last_type;
@@ -643,7 +643,7 @@ int __init sanitize_e820_map(struct e820entry * biosmap, char * pnr_map)
  * thinkpad 560x, for example, does not cooperate with the memory
  * detection code.)
  */
-int __init copy_e820_map(struct e820entry * biosmap, int nr_map)
+static int __init copy_e820_map(struct e820entry * biosmap, int nr_map)
 {
        /* Only one memory region (or negative)? Ignore it */
        if (nr_map < 2)
@@ -701,6 +701,12 @@ static inline void copy_edd(void)
 }
 #endif
 
+/*
+ * Do NOT EVER look at the BIOS memory size location.
+ * It does not work on many machines.
+ */
+#define LOWMEMSIZE()   (0x9f000)
+
 static void __init parse_cmdline_early (char ** cmdline_p)
 {
        char c = ' ', *to = command_line, *from = saved_command_line;
@@ -866,7 +872,7 @@ static void __init parse_cmdline_early (char ** cmdline_p)
 
 #ifdef CONFIG_X86_LOCAL_APIC
                /* enable local APIC */
-               else if (!memcmp(from, "lapic", 5) || !memcmp(from, "apic", 4))
+               else if (!memcmp(from, "lapic", 5))
                        lapic_enable();
 
                /* disable local APIC */
@@ -1314,10 +1320,8 @@ legacy_init_iomem_resources(struct resource *code_resource, struct resource *dat
        probe_roms();
        for (i = 0; i < e820.nr_map; i++) {
                struct resource *res;
-#ifndef CONFIG_RESOURCES_64BIT
                if (e820.map[i].addr + e820.map[i].size > 0x100000000ULL)
                        continue;
-#endif
                res = kzalloc(sizeof(struct resource), GFP_ATOMIC);
                switch (e820.map[i].type) {
                case E820_RAM:  res->name = "System RAM"; break;
@@ -1328,10 +1332,7 @@ legacy_init_iomem_resources(struct resource *code_resource, struct resource *dat
                res->start = e820.map[i].addr;
                res->end = res->start + e820.map[i].size - 1;
                res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
-               if (request_resource(&iomem_resource, res)) {
-                       kfree(res);
-                       continue;
-               }
+               request_resource(&iomem_resource, res);
                if (e820.map[i].type == E820_RAM) {
                        /*
                         *  We don't know which RAM region contains kernel data,
@@ -1422,6 +1423,8 @@ static void __init register_memory(void)
                pci_mem_start, gapstart, gapsize);
 }
 
+static char * __init machine_specific_memory_setup(void);
+
 #ifdef CONFIG_MCA
 static void set_mca_bus(int x)
 {
@@ -1544,10 +1547,6 @@ void __init setup_arch(char **cmdline_p)
        if (efi_enabled)
                efi_map_memmap();
 
-#ifdef CONFIG_X86_APIC_AUTO
-       dmi_check_apic();
-#endif
-
 #ifdef CONFIG_ACPI
        /*
         * Parse the ACPI tables for possible boot-time SMP configuration.
@@ -1570,7 +1569,7 @@ void __init setup_arch(char **cmdline_p)
 #endif
 #endif
 #ifdef CONFIG_X86_LOCAL_APIC
-       if (smp_found_config && cpu_has_apic)
+       if (smp_found_config)
                get_smp_config();
 #endif
 
@@ -1584,7 +1583,6 @@ void __init setup_arch(char **cmdline_p)
        conswitchp = &dummy_con;
 #endif
 #endif
-       tsc_init();
 }
 
 static __init int add_pcspkr(void)
@@ -1604,6 +1602,7 @@ static __init int add_pcspkr(void)
 }
 device_initcall(add_pcspkr);
 
+#include "setup_arch_post.h"
 /*
  * Local Variables:
  * mode:c