|
@@ -126,6 +126,7 @@ EXPORT_SYMBOL(elf_platform);
|
|
|
static const char *cpu_name;
|
|
|
static const char *machine_name;
|
|
|
static char __initdata cmd_line[COMMAND_LINE_SIZE];
|
|
|
+struct machine_desc *machine_desc __initdata;
|
|
|
|
|
|
static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
|
|
|
static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', '?', '?', 'b' } };
|
|
@@ -708,13 +709,11 @@ static struct init_tags {
|
|
|
{ 0, ATAG_NONE }
|
|
|
};
|
|
|
|
|
|
-static void (*init_machine)(void) __initdata;
|
|
|
-
|
|
|
static int __init customize_machine(void)
|
|
|
{
|
|
|
/* customizes platform devices, or adds new ones */
|
|
|
- if (init_machine)
|
|
|
- init_machine();
|
|
|
+ if (machine_desc->init_machine)
|
|
|
+ machine_desc->init_machine();
|
|
|
return 0;
|
|
|
}
|
|
|
arch_initcall(customize_machine);
|
|
@@ -809,6 +808,7 @@ void __init setup_arch(char **cmdline_p)
|
|
|
|
|
|
setup_processor();
|
|
|
mdesc = setup_machine(machine_arch_type);
|
|
|
+ machine_desc = mdesc;
|
|
|
machine_name = mdesc->name;
|
|
|
|
|
|
if (mdesc->soft_reboot)
|
|
@@ -868,13 +868,6 @@ void __init setup_arch(char **cmdline_p)
|
|
|
cpu_init();
|
|
|
tcm_init();
|
|
|
|
|
|
- /*
|
|
|
- * Set up various architecture-specific pointers
|
|
|
- */
|
|
|
- arch_nr_irqs = mdesc->nr_irqs;
|
|
|
- init_arch_irq = mdesc->init_irq;
|
|
|
- system_timer = mdesc->timer;
|
|
|
- init_machine = mdesc->init_machine;
|
|
|
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
|
|
handle_arch_irq = mdesc->handle_irq;
|
|
|
#endif
|