[U-Boot] [PATCH 1/3] config: introduce a generic $bootcmd

Dennis Gilmore
2014-08-12T20:29:48Z

On Tue, 12 Aug 2014 19:29:02 +0200
Jeroen Hofstee <jeroen@myspectrum.nl> wrote:

> Hello Stephan,
>
> On 11-08-14 20:55, Stephen Warren wrote:
>
> <snip>
>
> >>> No, Linux distros need to be able to install a single bootloader
> >>> configuration file to tell the bootloader how to boot.
> >>
> >> Don't understand this, I though extlinux is yet another
> >> chainloaded bootloader? I doubt there is "the bootloader".
> >> I don't understand why it needs a single bootloader. It gets
> >> in handy if the last bootloader is known, but I don't even see
> >> why that is required.
> >
> > This is obviously where the disconnect is...
> >
> > extlinux is (IIRC) a bootloader yes. However, this patch isn't
> > about extlinux, but extlinux.conf.
> >
>
> haha, right that is a funny misunderstanding. Yes, extlinux is
> indeed a bootloader and I was in the impression you actively
> searched for it to chainload it. And to make extlinux a requirement
> for distro support... And as I tried to explain I am not that fond of
> such an approach in general, and that had nothing to do, as Tom
> suggested, with booting FreeBSD, it is just the image I encountered
> searching for it in various places. It remains a badly named file
> though (for U-boot), but well so be it, I guess.

u-boot in the pxe code has an implementation that parses the syslinux
config file. though there really is nothing that says its a linux only
thing, admittedly I'm a bit naive as to how things like freebsd boot
but i assume you can load a kernel and pass some boot arguments just
the same. We are looking for a extlinux.conf file as that's what
extlinux looks for and we are mimicking the functionality.

> > extlinux.conf is a text file format the defines a menu of bootable
> > OSs. It's a (de-facto I suppose) standard that's implemented by
> > extlinux (if indeed that is a piece of SW:-) and also U-Boot and
> > barebox and likely other bootloaders too.
> >
> > So, when U-Boot locates extlinux.conf on disk and processes it,
> > it's parsing a configuration file/menu, not chain-loading/executing
> > another bootloader.
> >
>
> I see, so shouldn't we document then who is in charge of its format
> at least, before we start making a U-boot/distro specific version of
> it?

We are using the same format as is used by the syslinux project. we
support a couple of optional items to specify the dtb, fdt and fdtdir,
fdt is a location to a devicetree blob and fdtdir is a directory where
you can find devicetree blobs.

> <snip example file>
> >
> > That would require all Linux distros to have specific support to
> > install boot.scr, which is a bootloader-specific format script
> > file. Systems that boot using e.g. Barebox or other bootloaders
> > presumably can't process boot.scr. However, if all bootloaders end
> > up supporting extlinux.conf, the distro won't care what bootloader
> > is on the HW.
>
> We will see if this works, I am bit skeptical, but it is at least a
> whole lot
> better then polling all possible options, where I took the patch for.
> (Well not all yet, but the start to do so).

Even with checking the different places that we can find the config
file. There is no noise, u-boot doesn't print out when there is no files
found only when it find them. The time to check for the existence of
the file is very quick.

Dennis