From 879caa27dd19873510f9ea58cdefb4775197abd2 Mon Sep 17 00:00:00 2001 From: Chris Smart Date: Fri, 21 Oct 2016 17:04:26 +1100 Subject: core/init.c: Fix bootargs parsing Currently the bootargs are unconditionally deleted, which causes a bug where the bootargs passed in by the device tree are lost. This patch deletes bootargs only if it needs to be replaced by the NVRAM entry. This patch also removes KERNEL_COMMAND_LINE config option in favour of using the NVRAM or a device tree. Signed-off-by: Chris Smart Acked-by: Balbir Singh Signed-off-by: Stewart Smith --- core/init.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'core') diff --git a/core/init.c b/core/init.c index 43ce3a0..7d75fd2 100644 --- a/core/init.c +++ b/core/init.c @@ -502,16 +502,12 @@ void __noreturn load_and_boot_kernel(bool is_reboot) */ occ_pstates_init(); - /* Set kernel command line argument if specified */ - dt_check_del_prop(dt_chosen, "bootargs"); + /* Use nvram bootargs over device tree */ cmdline = nvram_query("bootargs"); -#ifdef KERNEL_COMMAND_LINE - if (!cmdline) - cmdline = KERNEL_COMMAND_LINE; -#endif - /* some platforms always pass bootargs through the fdt */ - if (cmdline && !dt_find_property(dt_chosen, "bootargs")) + if (cmdline) { + dt_check_del_prop(dt_chosen, "bootargs"); dt_add_property_string(dt_chosen, "bootargs", cmdline); + } op_display(OP_LOG, OP_MOD_INIT, 0x000B); -- cgit v1.1