* Common prep/pmac/chrp boot and setup code.
*/
+#include <linux/config.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/sched.h>
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;
/* 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
/* 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) {
/* 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;
ppc_md.init_early();
find_legacy_serial_ports();
+ finish_device_tree();
smp_setup_cpu_maps();
/* 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();