MIPS: bootm: refactor preparation of Linux kernel environment
Move preparation of Linux kernel environment 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:
parent
25fc664f40
commit
ca65e5851f
@ -127,6 +127,15 @@ config MIPS_BOOT_CMDLINE_LEGACY
|
||||
compatible list. The argument count (argc) is stored in register $a0.
|
||||
The address of the argument list (argv) is stored in register $a1.
|
||||
|
||||
config MIPS_BOOT_ENV_LEGACY
|
||||
bool "Hand over legacy environment to Linux kernel"
|
||||
default y
|
||||
help
|
||||
Enable this option if you want U-Boot to hand over the Yamon-style
|
||||
environment to the kernel. Information like memory size, initrd
|
||||
address and size will be prepared as zero-terminated key/value list.
|
||||
The address of the enviroment is stored in register $a2.
|
||||
|
||||
endmenu
|
||||
|
||||
config SUPPORTS_BIG_ENDIAN
|
||||
|
@ -26,6 +26,12 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
#define mips_boot_cmdline_legacy 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MIPS_BOOT_ENV_LEGACY)
|
||||
#define mips_boot_env_legacy 1
|
||||
#else
|
||||
#define mips_boot_env_legacy 0
|
||||
#endif
|
||||
|
||||
static int linux_argc;
|
||||
static char **linux_argv;
|
||||
static char *linux_argp;
|
||||
@ -177,7 +183,7 @@ static void linux_env_set(const char *env_name, const char *env_val)
|
||||
}
|
||||
}
|
||||
|
||||
static void boot_prep_linux(bootm_headers_t *images)
|
||||
static void linux_env_legacy(bootm_headers_t *images)
|
||||
{
|
||||
char env_buf[12];
|
||||
const char *cp;
|
||||
@ -225,6 +231,12 @@ static void boot_prep_linux(bootm_headers_t *images)
|
||||
}
|
||||
}
|
||||
|
||||
static void boot_prep_linux(bootm_headers_t *images)
|
||||
{
|
||||
if (mips_boot_env_legacy)
|
||||
linux_env_legacy(images);
|
||||
}
|
||||
|
||||
static void boot_jump_linux(bootm_headers_t *images)
|
||||
{
|
||||
typedef void __noreturn (*kernel_entry_t)(int, ulong, ulong, ulong);
|
||||
|
Loading…
Reference in New Issue
Block a user