Hi, I am replying to this email since it still has the context below.
On Mon, 4 Dec 2023 at 03:48, Mark Kettenis <mark.kette...@xs4all.nl> wrote: > > > From: Simon Glass <s...@chromium.org> > > Date: Sun, 3 Dec 2023 17:26:17 -0700 > > Hi Simon, > > There is a typo in first line of the commit message: s/netbds/netbsd/. > > > It isn't clear how useful it is to pass the arguments of bootm to the > > OS. For example, if "bootm 1000 2000 3000" is used, the three arguments > > at the end are passed to the OS. This seems like a strange approach, > > since the argument have already been parsed by U-Boot and processed. > > > > Rely instead on the "bootargs" mechanism, which is the standard > > approach. > > It is a very Linuxy approach though. > > I suspect this feature was added to pass kernel arguments for > "one-off" boots. For example > > bootm -s Martin says that this is used with NetBSD. So do we rely on U-Boot parsing the '-s' as 0 and then using loadaddr as the default? I wonder if we could come up with another mechanism? Perhaps 'bootm -- args go here' ? Or define that if the first arg starts with '-' then the args are not parsed? Martin, would it be possible to send a patch to doc/ describing how to boot NetBSD? > > could be used to boot NetBSD in single-user mode and is quite a bit > more convenient than: > > setenv bootargs -s > bootm > > That said, I'm not sure to what extent the bootm command is used to > boot NetBSD these days. So this may not really matter. > > Cheers, > > Mark > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > boot/bootm_os.c | 16 +++------------- > > 1 file changed, 3 insertions(+), 13 deletions(-) > > > > diff --git a/boot/bootm_os.c b/boot/bootm_os.c > > index b92422171a84..b5055d78706c 100644 > > --- a/boot/bootm_os.c > > +++ b/boot/bootm_os.c > > @@ -102,19 +102,9 @@ static int do_bootm_netbsd(int flag, int argc, char > > *const argv[], > > os_hdr = hdr; > > } > > > > - if (argc > 0) { > > - ulong len; > > - int i; > > - > > - for (i = 0, len = 0; i < argc; i += 1) > > - len += strlen(argv[i]) + 1; > > - cmdline = malloc(len); > > - copy_args(cmdline, argc, argv, ' '); > > - } else { > > - cmdline = env_get("bootargs"); > > - if (cmdline == NULL) > > - cmdline = ""; > > - } > > + cmdline = env_get("bootargs"); > > + if (!cmdline) > > + cmdline = ""; > > > > loader = (void (*)(struct bd_info *, struct legacy_img_hdr *, char *, > > char *))images->ep; > > > > -- > > 2.43.0.rc2.451.g8631bc7472-goog > > > >