lmb_init();
        of_scan_flat_dt(early_init_dt_scan_root, NULL);
        of_scan_flat_dt(early_init_dt_scan_memory, NULL);
+
+       /* Save command line for /proc/cmdline and then parse parameters */
+       strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
+       parse_early_param();
+
        lmb_enforce_memory_limit(memory_limit);
        lmb_analyze();
 
 
        /* 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
 /* Warning, IO base is not yet inited */
 void __init setup_arch(char **cmdline_p)
 {
+       *cmdline_p = cmd_line;
+
        /* so udelay does something sensible, assume <= 1000 bogomips */
        loops_per_jiffy = 500000000 / HZ;
 
        init_mm.end_data = (unsigned long) _edata;
        init_mm.brk = klimit;
 
-       /* Save unparsed command line copy for /proc/cmdline */
-       strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
-       *cmdline_p = cmd_line;
-
-       parse_early_param();
-
        if (do_early_xmon)
                debugger(NULL);
 
 
         */
        register_early_udbg_console();
 
-       /* Save unparsed command line copy for /proc/cmdline */
-       strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
-
-       parse_early_param();
-
        if (do_early_xmon)
                debugger(NULL);