On Mon, Oct 22, 2018 at 5:55 PM Palmer Dabbelt <palmer@xxxxxxxxxx> wrote: > > On Mon, 22 Oct 2018 15:42:13 PDT (-0700), robh@xxxxxxxxxx wrote: > > On Mon, Oct 15, 2018 at 05:20:10PM +0300, Nick Kossifidis wrote: > >> The /chosen node is optional so we should handle CMDLINE regardless > >> the presence of /chosen/bootargs. Move handling of CMDLINE in > >> early_init_dt_scan() instead. > > > > I looked at this a while back. I'm not sure this behavior can be changed > > without breaking some MIPS platforms that could be relying on the > > current behavior. But trying to make sense of the MIPS code is a > > challenge and they have some other issues in this area. > > > > Can't this be fixed by making /chosen manditory? I'd expect ultimately > > you are always going to need it. > > > > I'd rather not resort to making this per arch. There's also some effort > > to consolidate cmd line handling[1]. > > I'd rather make /chosen mandatory on RISC-V than to have per-arch handling, as > like you've said there's already too much duplication. That said, it does seem > like a bug to me because the behavior seems somewhat arbitrary -- an empty > /chosen node causing the built-in command-line argument handling to go off the > rails just smells so buggy. Yes. Probably need to do some archaeology on this code to figure out some of the expectations. > If that's the case, could we at least have something like > "CONFIG_OF_CHOSEN_IS_MANDATORY" that provides a warning when there is no > /chosen node and is set on architecture where the spec mandates /chosen? I'd be okay to make it a warning unconditionally. At least then we can find the cases that deviate and either fix them or understand their expectations. Rob