mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
xtensa: ISS: update kernel command line in platform_setup
Move platform_setup call higher in initialization sequence so that it could change kernel command line. Check command line passed to simulator in ISS platform_stup and update kernel command line if there's anything. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
e8cd8da934
commit
fbe22d2800
@ -317,8 +317,9 @@ static inline int mem_reserve(unsigned long start, unsigned long end)
|
||||
|
||||
void __init setup_arch(char **cmdline_p)
|
||||
{
|
||||
strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
|
||||
*cmdline_p = command_line;
|
||||
platform_setup(cmdline_p);
|
||||
strlcpy(boot_command_line, *cmdline_p, COMMAND_LINE_SIZE);
|
||||
|
||||
/* Reserve some memory regions */
|
||||
|
||||
@ -379,8 +380,6 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
unflatten_and_copy_device_tree();
|
||||
|
||||
platform_setup(cmdline_p);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
smp_init_cpus();
|
||||
#endif
|
||||
|
@ -8,6 +8,7 @@
|
||||
* Joe Taylor <joe@tensilica.com>
|
||||
*
|
||||
* Copyright 2001 - 2005 Tensilica Inc.
|
||||
* Copyright 2017 Cadence Design Systems Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
@ -15,6 +16,7 @@
|
||||
* option) any later version.
|
||||
*
|
||||
*/
|
||||
#include <linux/bootmem.h>
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
@ -76,5 +78,24 @@ static struct notifier_block iss_panic_block = {
|
||||
|
||||
void __init platform_setup(char **p_cmdline)
|
||||
{
|
||||
int argc = simc_argc();
|
||||
int argv_size = simc_argv_size();
|
||||
|
||||
if (argc > 1) {
|
||||
void **argv = alloc_bootmem(argv_size);
|
||||
char *cmdline = alloc_bootmem(argv_size);
|
||||
int i;
|
||||
|
||||
cmdline[0] = 0;
|
||||
simc_argv((void *)argv);
|
||||
|
||||
for (i = 1; i < argc; ++i) {
|
||||
if (i > 1)
|
||||
strcat(cmdline, " ");
|
||||
strcat(cmdline, argv[i]);
|
||||
}
|
||||
*p_cmdline = cmdline;
|
||||
}
|
||||
|
||||
atomic_notifier_chain_register(&panic_notifier_list, &iss_panic_block);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user