[PATCH v3 00/19] bootstd: Support recording images

Tom Rini trini at konsulko.com
Wed Jan 15 22:24:39 CET 2025


On Wed, Jan 15, 2025 at 06:55:45AM -0700, Simon Glass wrote:
> Hi,
> 
> On Mon, 4 Nov 2024 at 10:51, Simon Glass <sjg at chromium.org> wrote:
> >
> > This series provides a way to keep track of the images used in bootstd,
> > including the type of each image.
> >
> > At present this is sort-of handled by struct bootflow but in quite an
> > ad-hoc way. The structure has become quite large and is hard to query.
> > Future work will be able to reduce its size.
> >
> > Ultimately the 'bootflow info' command may change to also show images as
> > a list, but that is left for later, as this series is already fairly
> > long. So for now, just introduce the concept and adjust bootstd to use
> > it, with a simple command to list the images.
> >
> > This series includes various alist enhancements, to make use of this new
> > data structure a little easier.
> >
> > Changes in v3:
> > - Add a helper in bootflow
> > - Add a new patch supporting ad-hoc bootflows
> > - Add new patch to export bootdev_get_from_blk()
> > - Add new patch to record loaded files in an ad-hoc bootflow
> > - Update bootstd_add_bootflow() to return the element number
> > - Use the helper function
> >
> > Changes in v2:
> > - Add an image type extension in bootflow.h
> > - Change the tag to bootmeth_efi
> > - Drop patches already applied
> > - Drop patches which add new image types
> > - Update to use a new image-type enum in bootflow.h
> > - Use the word 'feature' instead of 'hack'
> >
> > Simon Glass (19):
> >   bootstd: Move bootflow-adding to bootstd
> >   bootstd: Move bootflow-clearing to bootstd
> >   bootstd: Add a function to get bootstd only if available
> >   bootstd: Drop the bootdev-specific list of bootflows
> >   bootstd: Move the bootflow list into an alist
> >   bootstd: Maintain a list of images
> >   bootstd: Update bootmeth_alloc_file() to record images
> >   boot: pxe: Drop the duplicate comment on get_pxe_file()
> >   bootmeth_efi: Simplify reading files by using the common function
> >   bootmeth: Update the read_file() method to include a type
> >   bootmeth_efi: Check the filename-allocation in the network path
> >   boot: Update extlinux pxe_getfile_func() to include type
> >   boot: Update pxe bootmeth to record images
> >   Update bootmeth_alloc_other() to record images
> >   bootstd: Update cros bootmeth to record images
> >   bootstd: Add a simple command to list images
> >   bootstd: Export bootdev_get_from_blk()
> >   bootstd: Add the concept of an ad-hoc bootflow
> >   fs: Record loaded files in an ad-hoc bootflow
> >
> >  boot/bootdev-uclass.c            |  78 ++++++-------------
> >  boot/bootflow.c                  |  77 +++++++++++++++----
> >  boot/bootmeth-uclass.c           |  29 +++++--
> >  boot/bootmeth_android.c          |   3 +-
> >  boot/bootmeth_cros.c             |  17 ++++-
> >  boot/bootmeth_efi.c              |  16 ++--
> >  boot/bootmeth_efi_mgr.c          |   3 +-
> >  boot/bootmeth_extlinux.c         |   7 +-
> >  boot/bootmeth_pxe.c              |  10 ++-
> >  boot/bootmeth_qfw.c              |   3 +-
> >  boot/bootmeth_sandbox.c          |   3 +-
> >  boot/bootmeth_script.c           |   7 +-
> >  boot/bootstd-uclass.c            | 104 +++++++++++++++++++++++--
> >  boot/pxe_utils.c                 |  36 ++++-----
> >  boot/vbe_simple.c                |   5 +-
> >  cmd/Kconfig                      |   9 +++
> >  cmd/Makefile                     |   1 +
> >  cmd/bootdev.c                    |   2 +-
> >  cmd/bootflow.c                   |  11 +--
> >  cmd/bootstd.c                    |  65 ++++++++++++++++
> >  cmd/pxe.c                        |   2 +-
> >  cmd/sysboot.c                    |   6 +-
> >  doc/develop/bootstd/overview.rst |  24 +++++-
> >  doc/usage/cmd/bootstd.rst        |  79 +++++++++++++++++++
> >  doc/usage/index.rst              |   1 +
> >  fs/fs.c                          |  15 ++++
> >  include/bootdev.h                |  36 +++------
> >  include/bootflow.h               |  88 ++++++++++++++++++---
> >  include/bootmeth.h               |  22 ++++--
> >  include/bootstd.h                |  69 ++++++++++++++++-
> >  include/pxe_utils.h              |  14 +++-
> >  test/boot/bootflow.c             | 126 +++++++++++++++++++++++++++++++
> >  test/py/tests/test_ut.py         |   3 +-
> >  33 files changed, 788 insertions(+), 183 deletions(-)
> >  create mode 100644 cmd/bootstd.c
> >  create mode 100644 doc/usage/cmd/bootstd.rst
> >
> > --
> > 2.34.1
> >
> 
> patchwork link: https://patchwork.ozlabs.org/project/uboot/list/?series=433068
> 
> What is the status of this series please?

So, for v4 of this series, most arm64 platforms grow by ~1KiB (a few are
2, a few are a bit less than 1). 32bit ARM is similar but now mx6sabresd
doesn't build in CI (there's some embedded path names that now overflow,
try make O=/tmp/1/2/3/4/5/6/7/8/9/10/mx6sabresd mx6sabresd_config all).
For size changes, really most architectures are like that, so perhaps
it's worth stepping back again and asking where this should be default
enabled. For the mx6sabresd part, if we drop the recording for ad-hoc
(which I think you had suggested at some point since I wasn't sure about
that direction), everything builds at least.

-- 
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/20250115/3b116612/attachment.sig>


More information about the U-Boot mailing list