powerpc/powernv: Get kernel command line accross OPAL takeover

We stash it in boot_command_line which isn't in BSS and so won't
be overwritten. We then use that as a default cmd_line before
we walk the device-tree.
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 27f44888
...@@ -712,6 +712,13 @@ void __init early_init_devtree(void *params) ...@@ -712,6 +712,13 @@ void __init early_init_devtree(void *params)
of_scan_flat_dt(early_init_dt_scan_phyp_dump, NULL); of_scan_flat_dt(early_init_dt_scan_phyp_dump, NULL);
#endif #endif
/* Pre-initialize the cmd_line with the content of boot_commmand_line,
* which will be empty except when the content of the variable has
* been overriden by a bootloading mechanism. This happens typically
* with HAL takeover
*/
strlcpy(cmd_line, boot_command_line, COMMAND_LINE_SIZE);
/* Retrieve various informations from the /chosen node of the /* Retrieve various informations from the /chosen node of the
* device-tree, including the platform type, initrd location and * device-tree, including the platform type, initrd location and
* size, TCE reserve, and more ... * size, TCE reserve, and more ...
......
...@@ -1449,6 +1449,10 @@ static void prom_opal_takeover(void) ...@@ -1449,6 +1449,10 @@ static void prom_opal_takeover(void)
opal_addr = top_addr; opal_addr = top_addr;
args->hal_addr = opal_addr; args->hal_addr = opal_addr;
/* Copy the command line to the kernel image */
strlcpy(RELOC(boot_command_line), RELOC(prom_cmd_line),
COMMAND_LINE_SIZE);
prom_debug(" k_image = 0x%lx\n", args->k_image); prom_debug(" k_image = 0x%lx\n", args->k_image);
prom_debug(" k_size = 0x%lx\n", args->k_size); prom_debug(" k_size = 0x%lx\n", args->k_size);
prom_debug(" k_entry = 0x%lx\n", args->k_entry); prom_debug(" k_entry = 0x%lx\n", args->k_entry);
......
...@@ -21,7 +21,8 @@ _end enter_prom memcpy memset reloc_offset __secondary_hold ...@@ -21,7 +21,8 @@ _end enter_prom memcpy memset reloc_offset __secondary_hold
__secondary_hold_acknowledge __secondary_hold_spinloop __start __secondary_hold_acknowledge __secondary_hold_spinloop __start
strcmp strcpy strlcpy strlen strncmp strstr logo_linux_clut224 strcmp strcpy strlcpy strlen strncmp strstr logo_linux_clut224
reloc_got2 kernstart_addr memstart_addr linux_banner _stext reloc_got2 kernstart_addr memstart_addr linux_banner _stext
opal_query_takeover opal_do_takeover opal_enter_rtas opal_secondary_entry" opal_query_takeover opal_do_takeover opal_enter_rtas opal_secondary_entry
boot_command_line"
NM="$1" NM="$1"
OBJ="$2" OBJ="$2"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment