linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / arm / kernel / setup.c
index 0a722e7..08974cb 100644 (file)
@@ -7,6 +7,7 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/stddef.h>
@@ -17,7 +18,7 @@
 #include <linux/console.h>
 #include <linux/bootmem.h>
 #include <linux/seq_file.h>
-#include <linux/screen_info.h>
+#include <linux/tty.h>
 #include <linux/init.h>
 #include <linux/root_dev.h>
 #include <linux/cpu.h>
@@ -118,24 +119,9 @@ DEFINE_PER_CPU(struct cpuinfo_arm, cpu_data);
  * Standard memory resources
  */
 static struct resource mem_res[] = {
-       {
-               .name = "Video RAM",
-               .start = 0,
-               .end = 0,
-               .flags = IORESOURCE_MEM
-       },
-       {
-               .name = "Kernel text",
-               .start = 0,
-               .end = 0,
-               .flags = IORESOURCE_MEM
-       },
-       {
-               .name = "Kernel data",
-               .start = 0,
-               .end = 0,
-               .flags = IORESOURCE_MEM
-       }
+       { "Video RAM",   0,     0,     IORESOURCE_MEM                   },
+       { "Kernel text", 0,     0,     IORESOURCE_MEM                   },
+       { "Kernel data", 0,     0,     IORESOURCE_MEM                   }
 };
 
 #define video_ram   mem_res[0]
@@ -143,24 +129,9 @@ static struct resource mem_res[] = {
 #define kernel_data mem_res[2]
 
 static struct resource io_res[] = {
-       {
-               .name = "reserved",
-               .start = 0x3bc,
-               .end = 0x3be,
-               .flags = IORESOURCE_IO | IORESOURCE_BUSY
-       },
-       {
-               .name = "reserved",
-               .start = 0x378,
-               .end = 0x37f,
-               .flags = IORESOURCE_IO | IORESOURCE_BUSY
-       },
-       {
-               .name = "reserved",
-               .start = 0x278,
-               .end = 0x27f,
-               .flags = IORESOURCE_IO | IORESOURCE_BUSY
-       }
+       { "reserved",    0x3bc, 0x3be, IORESOURCE_IO | IORESOURCE_BUSY },
+       { "reserved",    0x378, 0x37f, IORESOURCE_IO | IORESOURCE_BUSY },
+       { "reserved",    0x278, 0x27f, IORESOURCE_IO | IORESOURCE_BUSY }
 };
 
 #define lp0 io_res[0]
@@ -281,9 +252,6 @@ static void __init dump_cpu_info(int cpu)
                        dump_cache("cache", cpu, CACHE_ISIZE(info));
                }
        }
-
-       if (arch_is_coherent())
-               printk("Cache coherency enabled\n");
 }
 
 int cpu_architecture(void)
@@ -310,7 +278,7 @@ int cpu_architecture(void)
  * These functions re-use the assembly code in head.S, which
  * already provide the required functionality.
  */
-extern struct proc_info_list *lookup_processor_type(unsigned int);
+extern struct proc_info_list *lookup_processor_type(void);
 extern struct machine_desc *lookup_machine_type(unsigned int);
 
 static void __init setup_processor(void)
@@ -322,7 +290,7 @@ static void __init setup_processor(void)
         * types.  The linker builds this table for us from the
         * entries in arch/arm/mm/proc-*.S
         */
-       list = lookup_processor_type(processor_id);
+       list = lookup_processor_type();
        if (!list) {
                printk("CPU configuration botched (ID %08x), unable "
                       "to continue.\n", processor_id);
@@ -344,19 +312,13 @@ static void __init setup_processor(void)
        cpu_cache = *list->cache;
 #endif
 
-       printk("CPU: %s [%08x] revision %d (ARMv%s), cr=%08lx\n",
+       printk("CPU: %s [%08x] revision %d (ARMv%s)\n",
               cpu_name, processor_id, (int)processor_id & 15,
-              proc_arch[cpu_architecture()], cr_alignment);
+              proc_arch[cpu_architecture()]);
 
        sprintf(system_utsname.machine, "%s%c", list->arch_name, ENDIANNESS);
        sprintf(elf_platform, "%s%c", list->elf_name, ENDIANNESS);
        elf_hwcap = list->elf_hwcap;
-#ifndef CONFIG_ARM_THUMB
-       elf_hwcap &= ~HWCAP_THUMB;
-#endif
-#ifndef CONFIG_VFP
-       elf_hwcap &= ~HWCAP_VFP;
-#endif
 
        cpu_proc_init();
 }
@@ -436,7 +398,7 @@ static void __init early_initrd(char **p)
 }
 __early_param("initrd=", early_initrd);
 
-static void __init arm_add_memory(unsigned long start, unsigned long size)
+static void __init add_memory(unsigned long start, unsigned long size)
 {
        /*
         * Ensure that start/size are aligned to a page boundary.
@@ -474,7 +436,7 @@ static void __init early_mem(char **p)
        if (**p == '@')
                start = memparse(*p + 1, p);
 
-       arm_add_memory(start, size);
+       add_memory(start, size);
 }
 __early_param("mem=", early_mem);
 
@@ -616,7 +578,7 @@ static int __init parse_tag_mem32(const struct tag *tag)
                        tag->u.mem.start, tag->u.mem.size / 1024);
                return -EINVAL;
        }
-       arm_add_memory(tag->u.mem.start, tag->u.mem.size);
+       add_memory(tag->u.mem.start, tag->u.mem.size);
        return 0;
 }
 
@@ -836,8 +798,8 @@ static int __init topology_init(void)
 {
        int cpu;
 
-       for_each_possible_cpu(cpu)
-               register_cpu(&per_cpu(cpu_data, cpu).cpu, cpu);
+       for_each_cpu(cpu)
+               register_cpu(&per_cpu(cpu_data, cpu).cpu, cpu, NULL);
 
        return 0;
 }