Message ID | alpine.DEB.2.21.9999.1812171913510.29609@viisi.sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arch: riscv: support kernel command line forcing when no DTB passed | expand |
On Mon, Dec 17, 2018 at 07:15:12PM -0800, Paul Walmsley wrote: > > CONFIG_CMDLINE_FORCE doesn't work on RISC-V when no DTB is passed into > the kernel. This is because the code that forces the kernel command > line only runs if a valid DTB is present at boot. During debugging, > it's useful to have the ability to force kernel command lines even > when no DTB is present. This patch adds support for doing so. This looks fine to me: Reviewed-by: Christoph Hellwig <hch@lst.de> I just wish all this command line magic could be moved to common code somewhere instead of being reinvented badly in every port..
On Dez 17 2018, Paul Walmsley <paul.walmsley@sifive.com> wrote: > diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c > index 2c290e6aaa6e..e6b962ff39b1 100644 > --- a/arch/riscv/kernel/setup.c > +++ b/arch/riscv/kernel/setup.c > @@ -171,7 +171,14 @@ asmlinkage void __init setup_vm(void) > > void __init parse_dtb(unsigned int hartid, void *dtb) > { > - early_init_dt_scan(__va(dtb)); > + if (!early_init_dt_scan(__va(dtb))) > + return; > + > + pr_err("No DTB passed to the kernel\n"); Isn't that backwards? early_init_dt_scan returns true if it found a DTB. Andreas.
On Tue, 5 Feb 2019, Andreas Schwab wrote: > On Dez 17 2018, Paul Walmsley <paul.walmsley@sifive.com> wrote: > > > diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c > > index 2c290e6aaa6e..e6b962ff39b1 100644 > > --- a/arch/riscv/kernel/setup.c > > +++ b/arch/riscv/kernel/setup.c > > @@ -171,7 +171,14 @@ asmlinkage void __init setup_vm(void) > > > > void __init parse_dtb(unsigned int hartid, void *dtb) > > { > > - early_init_dt_scan(__va(dtb)); > > + if (!early_init_dt_scan(__va(dtb))) > > + return; > > + > > + pr_err("No DTB passed to the kernel\n"); > > Isn't that backwards? early_init_dt_scan returns true if it found a > DTB. Yes, it's backwards. Thanks for the catch. Looks like I sent an older version of the patch. - Paul
diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c index 2c290e6aaa6e..e6b962ff39b1 100644 --- a/arch/riscv/kernel/setup.c +++ b/arch/riscv/kernel/setup.c @@ -171,7 +171,14 @@ asmlinkage void __init setup_vm(void) void __init parse_dtb(unsigned int hartid, void *dtb) { - early_init_dt_scan(__va(dtb)); + if (!early_init_dt_scan(__va(dtb))) + return; + + pr_err("No DTB passed to the kernel\n"); +#ifdef CONFIG_CMDLINE_FORCE + strlcpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); + pr_info("Forcing kernel command line to: %s\n", boot_command_line); +#endif } static void __init setup_bootmem(void)