[PATCH 1/1] drivers: add memory disk support

Tom Rini trini at konsulko.com
Wed Apr 20 15:45:48 CEST 2022


On Wed, Apr 20, 2022 at 08:58:25AM +0200, Heinrich Schuchardt wrote:
> 
> 
> On 4/20/22 00:59, Tom Rini wrote:
> > On Tue, Apr 19, 2022 at 11:55:00PM +0200, Heinrich Schuchardt wrote:
> > > On 4/19/22 23:26, Tom Rini wrote:
> > > > On Tue, Apr 19, 2022 at 11:16:41PM +0200, Heinrich Schuchardt wrote:
> > > > 
> > > > > In some scenarios it is desirable to package U-Boot with other files into
> > > > > a single blob. This patch allows to embed a memory disk into the U-Boot
> > > > > binary. This memory disk can be accessed like any other block
> > > > > device as 'mem 0'.
> > > > > 
> > > > > Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> > > > 
> > > > What's the use case for this, which isn't covered by some combination of
> > > > U-Boot being in a FIT image and the "load a firmware blob" that we have
> > > > today?  Thanks!
> > > 
> > > "U-Boot being in a FIT image" requires a loader that understands FIT.
> > 
> > Fortunately, that's U-Boot.
> 
> U-Boot can load FIT images. But other firmware cannot load a U-Boot which is
> inside a FIT image.

That's not how this works?  Please look at the platforms today which
make use of U-Boot and a FIT image for U-Boot.

> > > "load a firmware blob" requires a block device or a network file system.
> > 
> > No, we have various cases where we bundle inside of the image various
> > black boxes, in various ways.
> > 
> > > If you put U-Boot's payload into the U-Boot blob, you need neither a
> > > separate block device nor a network file system.
> > 
> > What is the use case for this?
> > 
> > > Packaging into U-Boot makes most sense where follow-up binaries are tightly
> > > integrated:
> > [re-ordering this list, sorry]
> > > * delivering device-trees
> > 
> > Yes, we can do that today, select the right one at run time, and even
> > pass that along to EFI via the appropriate config table entry.
> 
> If you want add an arbitrary device-tree that you want to pass to Linux you
> ave to patch a lot of code.

U-Boot passes the running device tree via EFI to the next stage out of
the box right now.  We can be given a device tree to use by a prior
stage, or we can use one of N that we were bundled with, right now.

> > > * adding iPXE
> > 
> > Rather than fetching this from the network, to continue to fetch and
> > load applications from the network?
> 
> U-Boot only offers insecure and unreliable protocols like tftp and NFS.

Then we should verify the payload we download before using it.  We
support that already.

> > > * adding a custom graphical boot manager as EFI application
> > 
> > Why can't this be loaded from the disk?
> 
> Disks drives are often loaded by other entities then firmware. The whole
> point of the patch is providing files without relying on a disk.

I'm not sure I get why, however.  We get tons of feedback along the
lines of "U-Boot is TOO BIG" and "I don't want to have to package U-Boot
for my distro, I want it to be on there and just work".  This feels like
taking both things in the other direction, without a clear use case for
who is going to use it, for what, and why what we have today is
insufficient.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20220420/dcfc354b/attachment.sig>


More information about the U-Boot mailing list