diff options
author | Daniel Schwierzeck <daniel.schwierzeck@gmail.com> | 2015-01-14 21:44:13 +0100 |
---|---|---|
committer | Daniel Schwierzeck <daniel.schwierzeck@gmail.com> | 2015-01-21 14:02:48 +0100 |
commit | ca65e5851fb60ae58b46e2ad76a90b39d9c378c3 (patch) | |
tree | c7a7a51f2c161760bea77581f7513dcfcaa62c1d /arch/mips | |
parent | 25fc664f408e2e78623d03071884bafc62251553 (diff) | |
download | u-boot-ca65e5851fb60ae58b46e2ad76a90b39d9c378c3.tar.gz u-boot-ca65e5851fb60ae58b46e2ad76a90b39d9c378c3.tar.bz2 u-boot-ca65e5851fb60ae58b46e2ad76a90b39d9c378c3.zip |
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>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/Kconfig | 9 | ||||
-rw-r--r-- | arch/mips/lib/bootm.c | 14 |
2 files changed, 22 insertions, 1 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index a5d5a336d3..9b3ecea377 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -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 diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c index a028a47ab9..fa579b36e4 100644 --- a/arch/mips/lib/bootm.c +++ b/arch/mips/lib/bootm.c @@ -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); |