X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fmips%2Fkernel%2Fsetup.c;h=397a70e651b5e9c21dbe7e3347dcc279df728b78;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=8c2b596a136f95376c45386b3fba0703d32f4991;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 8c2b596a1..397a70e65 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -10,6 +10,7 @@ * Copyright (C) 1999 Silicon Graphics, Inc. * Copyright (C) 2000 2001, 2002 Maciej W. Rozycki */ +#include #include #include #include @@ -24,7 +25,7 @@ #include #include #include -#include +#include #include #include #include @@ -441,55 +442,10 @@ static inline void bootmem_init(void) #endif /* CONFIG_BLK_DEV_INITRD */ } -/* - * arch_mem_init - initialize memory managment subsystem - * - * o plat_mem_setup() detects the memory configuration and will record detected - * memory areas using add_memory_region. - * o parse_cmdline_early() parses the command line for mem= options which, - * iff detected, will override the results of the automatic detection. - * - * At this stage the memory configuration of the system is known to the - * kernel but generic memory managment system is still entirely uninitialized. - * - * o bootmem_init() - * o sparse_init() - * o paging_init() - * - * At this stage the bootmem allocator is ready to use. - * - * NOTE: historically plat_mem_setup did the entire platform initialization. - * This was rather impractical because it meant plat_mem_setup had to - * get away without any kind of memory allocator. To keep old code from - * breaking plat_setup was just renamed to plat_setup and a second platform - * initialization hook for anything else was introduced. - */ - -extern void plat_mem_setup(void); - -static void __init arch_mem_init(char **cmdline_p) -{ - /* call board setup routine */ - plat_mem_setup(); - - strlcpy(command_line, arcs_cmdline, sizeof(command_line)); - strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); - - *cmdline_p = command_line; - - parse_cmdline_early(); - bootmem_init(); - sparse_init(); - paging_init(); -} - static inline void resource_init(void) { int i; - if (UNCAC_BASE != IO_BASE) - return; - code_resource.start = virt_to_phys(&_text); code_resource.end = virt_to_phys(&_etext) - 1; data_resource.start = virt_to_phys(&_etext); @@ -539,6 +495,8 @@ static inline void resource_init(void) #undef MAXMEM #undef MAXMEM_PFN +extern void plat_setup(void); + void __init setup_arch(char **cmdline_p) { cpu_probe(); @@ -553,8 +511,18 @@ void __init setup_arch(char **cmdline_p) #endif #endif - arch_mem_init(cmdline_p); + /* call board setup routine */ + plat_setup(); + + strlcpy(command_line, arcs_cmdline, sizeof(command_line)); + strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); + + *cmdline_p = command_line; + parse_cmdline_early(); + bootmem_init(); + sparse_init(); + paging_init(); resource_init(); #ifdef CONFIG_SMP plat_smp_setup();