MIPS: bootm: refactor preparation of Linux kernel command line

Move preparation of Linux kernel command line in a separate
function and mark it as legacy. Add a Kconfig option to make
that legacy mode configurable.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
Daniel Schwierzeck 2015-01-14 21:44:13 +01:00
parent 768f6096f9
commit 25fc664f40
2 changed files with 27 additions and 2 deletions

View File

@ -116,6 +116,19 @@ config CPU_MIPS64_R2
endchoice
menu "OS boot interface"
config MIPS_BOOT_CMDLINE_LEGACY
bool "Hand over legacy command line to Linux kernel"
default y
help
Enable this option if you want U-Boot to hand over the Yamon-style
command line to the kernel. All bootargs will be prepared as argc/argv
compatible list. The argument count (argc) is stored in register $a0.
The address of the argument list (argv) is stored in register $a1.
endmenu
config SUPPORTS_BIG_ENDIAN
bool

View File

@ -20,6 +20,12 @@ DECLARE_GLOBAL_DATA_PTR;
#define mips_boot_malta 0
#endif
#if defined(CONFIG_MIPS_BOOT_CMDLINE_LEGACY)
#define mips_boot_cmdline_legacy 1
#else
#define mips_boot_cmdline_legacy 0
#endif
static int linux_argc;
static char **linux_argv;
static char *linux_argp;
@ -92,7 +98,7 @@ static void linux_cmdline_dump(void)
debug(" arg %03d: %s\n", i, linux_argv[i]);
}
static void boot_cmdline_linux(bootm_headers_t *images)
static void linux_cmdline_legacy(bootm_headers_t *images)
{
const char *bootargs, *next, *quote;
@ -130,8 +136,14 @@ static void boot_cmdline_linux(bootm_headers_t *images)
bootargs = next;
}
}
linux_cmdline_dump();
static void boot_cmdline_linux(bootm_headers_t *images)
{
if (mips_boot_cmdline_legacy) {
linux_cmdline_legacy(images);
linux_cmdline_dump();
}
}
static void linux_env_init(void)