All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini via U-Boot <u-boot@lists.u-boot-project.org>
To: Carlo Caione <ccaione@baylibre.com>
Cc: u-boot@lists.denx.de, "Simon Glass" <sjg@chromium.org>,
	"Neil Armstrong" <neil.armstrong@linaro.org>,
	"Kory Maincent" <kory.maincent@bootlin.com>,
	"Peng Fan" <peng.fan@nxp.com>,
	"Kuan-Wei Chiu" <visitorckw@gmail.com>,
	"Jerome Forissier" <jerome.forissier@arm.com>,
	"Alif Zakuan Yuslaimi" <alif.zakuan.yuslaimi@altera.com>,
	"Raymond Mao" <raymond.mao@riscstar.com>,
	"Quentin Schulz" <quentin.schulz@cherry.de>,
	"Stefan Roese" <stefan.roese@mailbox.org>,
	"Philip Molloy" <philip.molloy@analog.com>,
	"Anshul Dalal" <anshuld@ti.com>,
	"Mattijs Korpershoek" <mkorpershoek@kernel.org>,
	"João Paulo Gonçalves" <joao.goncalves@toradex.com>,
	"Heinrich Schuchardt" <xypron.glpk@gmx.de>,
	"Ilias Apalodimas" <ilias.apalodimas@linaro.org>,
	"Javier Tia" <floss@jetm.me>,
	"Marek Vasut" <marek.vasut+renesas@mailbox.org>,
	"Heiko Schocher" <hs@nabladev.com>,
	"Dinesh Maniyam" <dinesh.maniyam@altera.com>,
	"Markus Schneider-Pargmann (TI.com)" <msp@baylibre.com>,
	"Lucien.Jheng" <lucienzx159@gmail.com>,
	"Martin Schwan" <m.schwan@phytec.de>,
	"Michal Simek" <michal.simek@amd.com>,
	"Pieter Van Trappen" <pieter.van.trappen@cern.ch>
Subject: Re: [PATCH 1/4] bootstd: add a firmware-owned devicetree source
Date: Mon, 20 Jul 2026 13:14:30 -0600	[thread overview]
Message-ID: <20260720191430.GG749385@bill-the-cat> (raw)
In-Reply-To: <CADh8LseqgrheGSjHhwXsH=prD1=Tnpnt0ZMx=-9jKV88Gsbumg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4426 bytes --]

On Thu, Jul 09, 2026 at 10:36:06AM +0200, Carlo Caione wrote:
> On Wed, Jul 8, 2026 at 7:18 PM Tom Rini <trini@konsulko.com> wrote:
> 
> > I think I wasn't clear enough on the RFC, sorry. We need to get this
> > binding approved over in https://github.com/devicetree-org/dt-schema/
> > and I strongly suspect that barebox would be able to make use of this
> > too, so a u-boot prefix would be inappropriate.
> 
> Addressing also the comment from David:
> 
> > I have some doubts that it is safe to add arbitrary child nodes to
> > arbitrary storage controller devices like this. Many of these devices
> > already define child nodes in their bindings, so this could break
> > drivers that expect a certain type of child node already. (And also
> > break validation against the binding schemas.)
> >
> > So it seems like it should go under /bootstd if this is u-boot-only
> > or /options [1] if we want to try to make it generic for other bootloaders.
> > And it could just have a phandle to reference the target block device
> > provider or just reference it by name (to match using alias).
> 
> Thank you both for the review.
> 
> I would like to split this into two parts:
> 
> 1. The on-media contract: a firmware-owned devicetree FIT manifest
> where configurations describe the valid base+overlay combinations and,
> when signed, authenticate the whole combination.
> 
> 2. The bootloader-local locator: how a particular bootloader finds
> that FIT container on its platform.
> 
> The first part is the piece that looks useful beyond U-Boot. The
> second part is bootloader policy (IMO).
> 
> For the U-Boot-local locator, I would like to follow the existing FWU
> metadata precedent. FWU metadata solves a similar problem:
> firmware-owned data whose storage location the bootloader must find,
> using GPT and MTD backends. It uses a standalone U-Boot control-DT
> node, not a child of the storage controller, and points to the storage
> provider by phandle:
> 
>     fwu-mdata {
>         compatible = "u-boot,fwu-mdata-gpt";
>         fwu-mdata-store = <&sdmmc1>;
>     };
> 
> Modeled the same way, the firmware-devicetree source would become a
> standalone U-Boot control-DT node, per backend:
> 
>     /* eMMC / SD (GPT) */
>     firmware-fdt {
>         compatible = "u-boot,firmware-fdt-block";
>         firmware-fdt-store = <&mmc0>;
>         partition-type-uuid = "384e979b-eb76-435a-a3a6-1a071dbad91d";
>         partition-name = "firmware";
>         filename = "fdt.itb";
>     };
> 
>     /* SPI-NOR / UBI */
>     firmware-fdt {
>         compatible = "u-boot,firmware-fdt-mtd";
>         firmware-fdt-store = <&spi_nor>;
>         ubi-volume = "firmware";
>         filename = "fdt.itb";
>     };
> 
> (please note that for the sake of simplification in the patchset we
> are only implementing the `u-boot,firmware-fdt-block` backend, `-mtd`
> variant to follow).
> 
> This fixes the child-node problem David raised: the controller node is
> untouched and only referenced by a phandle. It also keeps this as
> U-Boot control-DT policy, matching the existing FWU metadata pattern,
> rather than defining a new cross-bootloader locator ABI in this series
> (so exonerating us from dealing with dt-schema at all, considering
> also that we would deal with that for each different
> `u-boot,firmware-fdt-*` backend that we would introduce).
> 
> What I think is genuinely shareable with barebox is the on-media
> contract: the `fdt.itb` FIT layout, configuration semantics, signing
> model, and whatever partition or volume naming convention the platform
> or specification defines. That seems like the right thing to document
> at the EBBR level, where barebox could adopt the same container
> convention independently of how each bootloader locates it. So we
> share and define the 'what' but how then barebox (or any other
> bootloader) would source `ftd.itb` (the what) is not part of the ABI
> and very much bootloader specific.
> 
> Does following the existing U-Boot FWU-metadata precedent work if we
> scope this binding explicitly as U-Boot control-DT policy?

I was hoping that someone on the FWU side of things would chime in by
now, but I assume people have been too busy. This is I suppose a
reasonable starting path and will give people time to chime in if they
see a problem with it.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2026-07-20 19:14 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260720191430.GG749385@bill-the-cat \
    --to=u-boot@lists.u-boot-project.org \
    --cc=alif.zakuan.yuslaimi@altera.com \
    --cc=anshuld@ti.com \
    --cc=ccaione@baylibre.com \
    --cc=dinesh.maniyam@altera.com \
    --cc=floss@jetm.me \
    --cc=hs@nabladev.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jerome.forissier@arm.com \
    --cc=joao.goncalves@toradex.com \
    --cc=kory.maincent@bootlin.com \
    --cc=lucienzx159@gmail.com \
    --cc=m.schwan@phytec.de \
    --cc=marek.vasut+renesas@mailbox.org \
    --cc=michal.simek@amd.com \
    --cc=mkorpershoek@kernel.org \
    --cc=msp@baylibre.com \
    --cc=neil.armstrong@linaro.org \
    --cc=peng.fan@nxp.com \
    --cc=philip.molloy@analog.com \
    --cc=pieter.van.trappen@cern.ch \
    --cc=quentin.schulz@cherry.de \
    --cc=raymond.mao@riscstar.com \
    --cc=sjg@chromium.org \
    --cc=stefan.roese@mailbox.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=visitorckw@gmail.com \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.