[PATCH 09/13] net: wget: allow EFI boot

Simon Glass sjg at chromium.org
Tue Sep 10 20:41:31 CEST 2024


Hi Tom,

On Mon, 2 Sept 2024 at 09:41, Tom Rini <trini at konsulko.com> wrote:
>
> On Sun, Sep 01, 2024 at 02:09:40PM -0600, Simon Glass wrote:
> > Hi Ilias,
> >
> > On Fri, 30 Aug 2024 at 08:28, Ilias Apalodimas
> > <ilias.apalodimas at linaro.org> wrote:
> > >
> > > Hi Simon
> > >
> > > On Fri, 30 Aug 2024 at 17:18, Simon Glass <sjg at chromium.org> wrote:
> > > >
> > > > Hi Jerome,
> > > >
> > > > On Thu, 29 Aug 2024 at 08:04, Simon Glass <sjg at chromium.org> wrote:
> > > > >
> > > > > On Thu, 29 Aug 2024 at 01:34, Ilias Apalodimas
> > > > > <ilias.apalodimas at linaro.org> wrote:
> > > > > >
> > > > > > On Wed, 28 Aug 2024 at 15:10, Jerome Forissier
> > > > > > <jerome.forissier at linaro.org> wrote:
> > > > > > >
> > > > > > > wget followed by bootefi currently fails as follows:
> > > > > > >
> > > > > > >  U-Boot> wget 200000 192.168.0.30:helloworld.efi
> > > > > > >  Waiting for Ethernet connection... done.
> > > > > > >  HTTP/1.0 200 OK
> > > > > > >  Packets received 13, Transfer Successful
> > > > > > >  Bytes transferred = 12720 (31b0 hex)
> > > > > > >  U-Boot> bootefi 200000
> > > > > > >  No UEFI binary known at 200000
> > > > > > >  U-Boot>
> > > > > > >
> > > > > > > Fix the problem by adding the missing efi_set_bootdev() call.
> > > > > > >
> > > > > > > Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
> > > > > > > ---
> > > > > > >  net/wget.c | 4 ++++
> > > > > > >  1 file changed, 4 insertions(+)
> > > > >
> > > > > OMG the hack never dies. I hope I will someday create a series to tidy this up.
> > > >
> > > > I'm sorry for that remark, not helpful to collaboration.
> > >
> > > If you've figured out what needs to be done to remove it, I can deal with it.
> > > If not I'll put it on my backlog and have a look
> >
> > Mostly...my idea is to track loads within bootstd, adding a way for
> > bootmeths to record files they load, in struct bootflow. Then when
> > booting EFI, we just pass that info from distro_efi_boot() to
> > efi_binary_run().
>
> I worry about conflating "loaded something" with "need to boot thing
> thing". Maybe it's not a problem in the end, but there is not a 1:1
> between "loaded something" and "will boot this thing".

Yes, exactly. Bootstd tries to search for things and build a table of
what is there. Only when something is booted does it go ahead and set
it up to boot. In fact, some bootmeths delay kernel loading until
needed.

Regards,
Simon


More information about the U-Boot mailing list