[PATCH v2 00/41] Initial implementation of standard boot

Peter Robinson pbrobinson at gmail.com
Thu Oct 28 19:37:42 CEST 2021


On Wed, Oct 27, 2021 at 3:11 PM Simon Glass <sjg at chromium.org> wrote:
>
> Hi Heinrich,
>
> On Wed, 27 Oct 2021 at 05:38, Heinrich Schuchardt
> <heinrich.schuchardt at canonical.com> wrote:
> >
> >
> >
> > On 10/24/21 01:25, Simon Glass wrote:
> > >
> > > The bootflow feature provide a built-in way for U-Boot to automatically
> > > boot an Operating System without custom scripting and other customisation.
> > > This is called 'standard boot' since it provides a standard way for
> > > U-Boot to boot a distro, without scripting.
> > >
> > > It introduces the following concepts:
> > >
> > >     - bootdev - a device which can hold a distro
> > >     - bootmeth - a method to scan a bootdev to find bootflows (owned by
> > >                  U-Boot)
> > >     - bootflow - a description of how to boot (owned by the distro)
> >
> > Please, describe why you are suggesting this change.
> >
> > Replacing a script by a devicetree chunk is just decreasing flexibility
> > and increasing complexity. Where is the benefit?
> >
> > I am missing a description here of where and how a boot flow shall be
> > defined. Describing some device-tree binding in patch 40/41 does not
> > replace describing the development and usage workflow. Who will provide
> > which bootflow information when?
> >
> > You still have an open discussion with Linaro about the source of
> > devicetrees. This discussion needs to be finalized before considering
> > this series.
> >
> > In my view bootflows cannot be defined in the devicetree because prior
> > firmware providing a devicetree is completely independent of any distro
> > and therefore cannot provide a distro specific bootflow.
>
> There is actually no need to use devicetree here. I think you might
> have the wrong end of the stick. It is certainly possible to add nodes
> to configure things, if needed, but it works find without any changes
> to the devicetree, as you can see from the rpi_3 patch.
>
> There are several aims with this effort:
>
> - Provide a standard way to boot anything on U-Boot, that everyone can
> plug into (distros, board vendors, people using a custom flow)

I as a distro maintainer don't want this, we already get the "standard
way to boot" from UEFI, this just feels like another unnecessary
abstraction to that.

I do actually like a bunch of the ideas in here, random scripts in
distro_boot were a big step forward for straight forward booting a
decade or so when everything prior was random board specific boot.scr
and uImage but things have evolved into booting via UEFI which is very
standard across the general purpose compute devices style industries
and clearing up the random behind the scenes hush scripting is
definitely long overdue but I don't feel there needs to be another
layer of unnecessary indirection here.

> - Move all this stuff out of the environment so we can move to a
> text-based environment that doesn't rely on ad-hoc CONFIG options
>    (this unblocks the 7-year-old CONFIG migration)
> - Add proper tests to cover this important functionality (the scripts
> have no tests)
>    (this makes development much easier and faster)
> - Provide a path to booting more 'directly' without needing the CLI
> (which adds size / security risk)
>
> This initial series is not the end of the matter. I expect various
> other people will contribute to cover their use cases and additional
> features, but at least now we have good basis for this development and
> innovation.
>
> [..]
>
> Regards,
> Simon


More information about the U-Boot mailing list