aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-05-17 04:00:45 -0400
committerPaul Mackerras <paulus@samba.org>2006-05-19 01:02:13 -0400
commit846f77b08c8301682ded5ce127c56397327a60d0 (patch)
treec155737af3eceab34c621cc6930145062323eef8 /arch
parent480f6f35a149802a94ad5c1a2673ed6ec8d2c158 (diff)
[PATCH] powerpc: Parse early parameters earlier
Currently we have call parse_early_param() earliyish, but not really very early. In particular, it's not early enough to do things like mem=x or crashkernel=blah, which is annoying. So do it earlier. I've checked all the early param handlers, and none of them look like they should have any trouble with this. I haven't tested the booke_wdt ones though. On 32-bit we were doing the CONFIG_CMDLINE logic twice, so don't. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/kernel/prom.c5
-rw-r--r--arch/powerpc/kernel/setup_32.c14
-rw-r--r--arch/powerpc/kernel/setup_64.c5
3 files changed, 7 insertions, 17 deletions
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 9a07f97f0712..4ca608c9cd72 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -1292,6 +1292,11 @@ void __init early_init_devtree(void *params)
1292 lmb_init(); 1292 lmb_init();
1293 of_scan_flat_dt(early_init_dt_scan_root, NULL); 1293 of_scan_flat_dt(early_init_dt_scan_root, NULL);
1294 of_scan_flat_dt(early_init_dt_scan_memory, NULL); 1294 of_scan_flat_dt(early_init_dt_scan_memory, NULL);
1295
1296 /* Save command line for /proc/cmdline and then parse parameters */
1297 strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
1298 parse_early_param();
1299
1295 lmb_enforce_memory_limit(memory_limit); 1300 lmb_enforce_memory_limit(memory_limit);
1296 lmb_analyze(); 1301 lmb_analyze();
1297 1302
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index 2b6cacb6946f..e5a44812441a 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -131,12 +131,6 @@ void __init machine_init(unsigned long dt_ptr, unsigned long phys)
131 /* Do some early initialization based on the flat device tree */ 131 /* Do some early initialization based on the flat device tree */
132 early_init_devtree(__va(dt_ptr)); 132 early_init_devtree(__va(dt_ptr));
133 133
134 /* Check default command line */
135#ifdef CONFIG_CMDLINE
136 if (cmd_line[0] == 0)
137 strlcpy(cmd_line, CONFIG_CMDLINE, sizeof(cmd_line));
138#endif /* CONFIG_CMDLINE */
139
140 probe_machine(); 134 probe_machine();
141 135
142#ifdef CONFIG_6xx 136#ifdef CONFIG_6xx
@@ -235,6 +229,8 @@ arch_initcall(ppc_init);
235/* Warning, IO base is not yet inited */ 229/* Warning, IO base is not yet inited */
236void __init setup_arch(char **cmdline_p) 230void __init setup_arch(char **cmdline_p)
237{ 231{
232 *cmdline_p = cmd_line;
233
238 /* so udelay does something sensible, assume <= 1000 bogomips */ 234 /* so udelay does something sensible, assume <= 1000 bogomips */
239 loops_per_jiffy = 500000000 / HZ; 235 loops_per_jiffy = 500000000 / HZ;
240 236
@@ -291,12 +287,6 @@ void __init setup_arch(char **cmdline_p)
291 init_mm.end_data = (unsigned long) _edata; 287 init_mm.end_data = (unsigned long) _edata;
292 init_mm.brk = klimit; 288 init_mm.brk = klimit;
293 289
294 /* Save unparsed command line copy for /proc/cmdline */
295 strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
296 *cmdline_p = cmd_line;
297
298 parse_early_param();
299
300 if (do_early_xmon) 290 if (do_early_xmon)
301 debugger(NULL); 291 debugger(NULL);
302 292
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index a1923d917b30..6224624c3d38 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -414,11 +414,6 @@ void __init setup_system(void)
414 */ 414 */
415 register_early_udbg_console(); 415 register_early_udbg_console();
416 416
417 /* Save unparsed command line copy for /proc/cmdline */
418 strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
419
420 parse_early_param();
421
422 if (do_early_xmon) 417 if (do_early_xmon)
423 debugger(NULL); 418 debugger(NULL);
424 419