Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 846f77b0 authored by Michael Ellerman's avatar Michael Ellerman Committed by Paul Mackerras
Browse files

[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: default avatarMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 480f6f35
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1292,6 +1292,11 @@ void __init early_init_devtree(void *params)
	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();

+2 −12
Original line number Diff line number Diff line
@@ -131,12 +131,6 @@ void __init machine_init(unsigned long dt_ptr, unsigned long phys)
	/* 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
@@ -235,6 +229,8 @@ arch_initcall(ppc_init);
/* 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;

@@ -291,12 +287,6 @@ void __init setup_arch(char **cmdline_p)
	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);

+0 −5
Original line number Diff line number Diff line
@@ -414,11 +414,6 @@ void __init setup_system(void)
	 */
	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);