mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
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
2 changed files with 22 additions and 1 deletions
|
|
@ -127,6 +127,15 @@ config MIPS_BOOT_CMDLINE_LEGACY
|
||||||
compatible list. The argument count (argc) is stored in register $a0.
|
compatible list. The argument count (argc) is stored in register $a0.
|
||||||
The address of the argument list (argv) is stored in register $a1.
|
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
|
endmenu
|
||||||
|
|
||||||
config SUPPORTS_BIG_ENDIAN
|
config SUPPORTS_BIG_ENDIAN
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,12 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||||
#define mips_boot_cmdline_legacy 0
|
#define mips_boot_cmdline_legacy 0
|
||||||
#endif
|
#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 int linux_argc;
|
||||||
static char **linux_argv;
|
static char **linux_argv;
|
||||||
static char *linux_argp;
|
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];
|
char env_buf[12];
|
||||||
const char *cp;
|
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)
|
static void boot_jump_linux(bootm_headers_t *images)
|
||||||
{
|
{
|
||||||
typedef void __noreturn (*kernel_entry_t)(int, ulong, ulong, ulong);
|
typedef void __noreturn (*kernel_entry_t)(int, ulong, ulong, ulong);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue