[Concept,0/8] Add BLS Type #1 bootmethod with FIT and multi-initrd support

Message ID 20260213202417.223068-1-sjg@u-boot.org
Headers
Series Add BLS Type #1 bootmethod with FIT and multi-initrd support |

Message

Simon Glass Feb. 13, 2026, 8:24 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Add a Boot Loader Specification (BLS) Type #1 bootmethod, enabling
U-Boot to discover and boot from BLS entry files. This is used by
Fedora, RHEL and other distributions.

The series also extends PXE infrastructure to support multiple initrd
files using an alist, with LMB-based memory allocation for placing
subsequent initrds. The sysboot command gains the same LMB allocation
support.

Finally, a 'fit' field is added as a U-Boot extension to the BLS
format, allowing entries to explicitly specify a FIT image path as an
alternative to the 'linux' field.

It also includes a fix for a long-standing linker-list bug, as well as
a recently introduced Kconfig warning.


Simon Glass (8):
  dm: Fix linker list alignment for ll_entry_get()
  part_find: Fix PARTITION_TYPE_GUID dependency warning
  boot: Add BLS Type #1 entry parser
  boot: Add BLS Type #1 bootmethod
  test: Add bootflow test for BLS bootmethod
  pxe: Support multiple initrd files using alist
  bls: Add 'fit' field for FIT image support
  doc: bls: Update for FIT and multi-initrd support

 arch/sandbox/dts/test.dts |   7 +
 boot/Kconfig              |  38 ++++
 boot/Makefile             |   1 +
 boot/bls_parse.c          | 303 +++++++++++++++++++++++++
 boot/bootflow.c           |   1 +
 boot/bootmeth_bls.c       | 457 ++++++++++++++++++++++++++++++++++++++
 boot/pxe_parse.c          |  64 +++++-
 boot/pxe_utils.c          | 114 ++++++++--
 cmd/Kconfig               |   2 +-
 doc/usage/bls.rst         | 158 +++++++++++++
 doc/usage/index.rst       |   1 +
 include/bls.h             | 103 +++++++++
 include/bootflow.h        |   2 +
 include/linker_lists.h    |   3 +-
 include/pxe_utils.h       |   5 +-
 test/boot/Makefile        |   1 +
 test/boot/bls_parse.c     | 200 +++++++++++++++++
 test/boot/bootflow.c      |  54 +++++
 test/boot/pxe.c           |  12 +-
 test/py/img/bls.py        |  70 ++++++
 test/py/tests/test_ut.py  |   2 +
 21 files changed, 1564 insertions(+), 34 deletions(-)
 create mode 100644 boot/bls_parse.c
 create mode 100644 boot/bootmeth_bls.c
 create mode 100644 doc/usage/bls.rst
 create mode 100644 include/bls.h
 create mode 100644 test/boot/bls_parse.c
 create mode 100644 test/py/img/bls.py