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 / powerpc / kernel / setup_32.c
index e0df2ba..69ac257 100644 (file)
@@ -2,6 +2,7 @@
  * Common prep/pmac/chrp boot and setup code.
  */
 
+#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/sched.h>
@@ -51,6 +52,7 @@
 
 extern void bootx_init(unsigned long r4, unsigned long phys);
 
+boot_infos_t *boot_infos;
 struct ide_machdep_calls ppc_ide_md;
 
 int boot_cpuid;
@@ -129,6 +131,12 @@ void __init machine_init(unsigned long dt_ptr, unsigned long phys)
        /* Do some early initialization based on the flat device tree */
        early_init_devtree(__va(dt_ptr));
 
+       /* Check default command line */
+#ifdef CONFIG_CMDLINE
+       if (cmd_line[0] == 0)
+               strlcpy(cmd_line, CONFIG_CMDLINE, sizeof(cmd_line));
+#endif /* CONFIG_CMDLINE */
+
        probe_machine();
 
 #ifdef CONFIG_6xx
@@ -213,7 +221,7 @@ int __init ppc_init(void)
 
        /* register CPU devices */
        for_each_possible_cpu(i)
-               register_cpu(&cpu_devices[i], i);
+               register_cpu(&cpu_devices[i], i, NULL);
 
        /* call platform init */
        if (ppc_md.init != NULL) {
@@ -227,7 +235,7 @@ arch_initcall(ppc_init);
 /* Warning, IO base is not yet inited */
 void __init setup_arch(char **cmdline_p)
 {
-       *cmdline_p = cmd_line;
+       extern void do_init_bootmem(void);
 
        /* so udelay does something sensible, assume <= 1000 bogomips */
        loops_per_jiffy = 500000000 / HZ;
@@ -239,6 +247,7 @@ void __init setup_arch(char **cmdline_p)
                ppc_md.init_early();
 
        find_legacy_serial_ports();
+       finish_device_tree();
 
        smp_setup_cpu_maps();
 
@@ -276,16 +285,16 @@ void __init setup_arch(char **cmdline_p)
        /* reboot on panic */
        panic_timeout = 180;
 
-       if (ppc_md.panic)
-               setup_panic();
-
        init_mm.start_code = PAGE_OFFSET;
        init_mm.end_code = (unsigned long) _etext;
        init_mm.end_data = (unsigned long) _edata;
        init_mm.brk = klimit;
 
-       if (do_early_xmon)
-               debugger(NULL);
+       /* Save unparsed command line copy for /proc/cmdline */
+       strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
+       *cmdline_p = cmd_line;
+
+       parse_early_param();
 
        /* set up the bootmem stuff with available memory */
        do_init_bootmem();