U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] bootstd: firmware-owned devicetree for EBBR / SystemReady IR
@ 2026-07-06 15:06 Carlo Caione
  2026-07-06 15:06 ` [PATCH 1/4] bootstd: add a firmware-owned devicetree source Carlo Caione
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Carlo Caione @ 2026-07-06 15:06 UTC (permalink / raw)
  To: u-boot
  Cc: Tom Rini, Simon Glass, Neil Armstrong, Kory Maincent, Peng Fan,
	Kuan-Wei Chiu, Jerome Forissier, Alif Zakuan Yuslaimi,
	Raymond Mao, Quentin Schulz, Stefan Roese, Philip Molloy,
	Anshul Dalal, Mattijs Korpershoek, João Paulo Gonçalves,
	Heinrich Schuchardt, Ilias Apalodimas, Javier Tia, Marek Vasut,
	Heiko Schocher, Dinesh Maniyam,
	Markus Schneider-Pargmann (TI.com), Lucien.Jheng, Martin Schwan,
	Michal Simek, Pieter Van Trappen, Carlo Caione

EBBR-style firmware (SystemReady IR) owns the devicetree: the OS is
booted via UEFI and receives the devicetree from the firmware through
the EFI configuration table instead of shipping its own. U-Boot has
the handoff mechanism (efi_install_fdt()), but no generic way to say
which devicetree the firmware owns or where it lives, so vendors carry
downstream commands for it (e.g. MediaTek's dtbprobe) and every board
reinvents discovery, selection and authentication.

This series adds a bootstd-level facility for sourcing the
firmware-owned devicetree from a FIT manifest on a dedicated GPT
partition:

- one FIT image ("fdt.itb" by default) on a partition identified by
  type UUID and/or name describes and carries the base devicetree and
  its overlays. FIT configurations name the bootable combinations, so
  signing a configuration authenticates the base, the overlay set and
  their ordering in one go;

- the control devicetree points at the source: a 'firmware-fdt-source'
  phandle under /bootstd referencing a 'u-boot,firmware-fdt-block' node
  under the owning media device;

- configuration selection: compatible best-match against the control
  devicetree (CONFIG_FIT_BEST_MATCH), then the manifest default, with
  environment overrides for explicit choice (one manifest can serve
  both a vendor OS wanting the full overlay stack and a generic
  distro wanting the plain base tree);

- both EFI launch paths consume it, the EFI bootmeth (disk and network)
  and the EFI boot manager, all funneling into efi_install_fdt();

- fail closed: once a source is configured, any failure to produce
  the devicetree ends the boot rather than silently falling back to an
  unverified one.

Patch 1 adds the core helper (source binding, partition lookup,
manifest assembly and selection); patch 2 hooks the EFI bootmeth,
disk and network paths; patch 3 the EFI boot manager; patch 4 adds
the sandbox tests.

For more details please check the RFC at [1] (or the commits).

[1] https://lore.kernel.org/u-boot/140504E6-5BCB-4566-A03F-2A94B0F5BA01@baylibre.com/

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
---
Carlo Caione (4):
      bootstd: add a firmware-owned devicetree source
      bootmeth: efi: source the devicetree from a firmware partition
      efi_loader: bootmgr: install the firmware-owned devicetree
      test: bootstd: add firmware-FDT source tests

 MAINTAINERS                               |   3 +
 arch/sandbox/dts/test.dts                 |  24 ++
 boot/Kconfig                              |  23 ++
 boot/Makefile                             |   1 +
 boot/bootmeth_efi.c                       |  81 +++++++
 boot/firmware_fdt.c                       | 382 ++++++++++++++++++++++++++++++
 configs/sandbox_defconfig                 |   1 +
 doc/develop/bootstd/firmware_fdt.rst      |  94 ++++++++
 doc/develop/bootstd/index.rst             |   1 +
 doc/device-tree-bindings/firmware-fdt.txt | 149 ++++++++++++
 include/firmware_fdt.h                    |  78 ++++++
 lib/efi_loader/efi_bootmgr.c              |  50 +++-
 test/boot/Makefile                        |   1 +
 test/boot/firmware_fdt.c                  | 292 +++++++++++++++++++++++
 test/py/tests/test_ut.py                  | 110 +++++++++
 15 files changed, 1283 insertions(+), 7 deletions(-)
---
base-commit: a3f393c02cf10f44310c6ddf3dedf354c2e877a0
change-id: 20260706-ccaione-upstream-ebbr-206c30be3a3a

Best regards,
--  
Carlo Caione <ccaione@baylibre.com>


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-07-20 19:14 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-06 15:06 [PATCH 0/4] bootstd: firmware-owned devicetree for EBBR / SystemReady IR Carlo Caione
2026-07-06 15:06 ` [PATCH 1/4] bootstd: add a firmware-owned devicetree source Carlo Caione
2026-07-08 17:18   ` Tom Rini
2026-07-09  8:36     ` Carlo Caione
2026-07-20 19:14       ` Tom Rini via U-Boot
2026-07-08 19:22   ` David Lechner
2026-07-09 20:18   ` Simon Glass
2026-07-06 15:06 ` [PATCH 2/4] bootmeth: efi: source the devicetree from a firmware partition Carlo Caione
2026-07-09 20:18   ` Simon Glass
2026-07-06 15:06 ` [PATCH 3/4] efi_loader: bootmgr: install the firmware-owned devicetree Carlo Caione
2026-07-09 20:19   ` Simon Glass
2026-07-06 15:06 ` [PATCH 4/4] test: bootstd: add firmware-FDT source tests Carlo Caione
2026-07-09 20:19   ` Simon Glass
2026-07-09 20:20 ` [0/4] bootstd: firmware-owned devicetree for EBBR / SystemReady IR Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox