[PATCH v2 15/18] fdt: Allow the devicetree to come from a bloblist

Ilias Apalodimas ilias.apalodimas at linaro.org
Tue Dec 5 07:21:49 CET 2023


Hi Simon,

We did discuss this in OSFC but perhaps you forgot.  The discussion
was based on the mail here [0].

On Tue, 5 Dec 2023 at 02:52, Simon Glass <sjg at chromium.org> wrote:
>
> Hi Raymond,
>
> On Mon, 4 Dec 2023 at 12:25, Raymond Mao <raymond.mao at linaro.org> wrote:
> >
> > Hi Simon,
> >
> > When `OF_BOARD` is defined, the FDT should be from one of  the board-specific mechanisms:
> > 1. FDT from a bloblist via boot args
> > 2. FDT in memory
> > I don't think we need a new build option to distinguish these two, since it can be done in runtime by checking whether the boot args follow the FW Handoff spec conventions and the FDT exists in the bloblist.
>
> No, I would really like this to be deterministic, so we can fail if
> something goes wrong. The bloblist should be 'declared' as the way to
> boot, for a board.

We *are* deterministic. I am just going to repeat what we discussed in
OSFC for completeness.
OF_BLOBLIST makes little sense because we are not going to add a
Kconfig per blolblist entry.
I haven't looked at what the patch does yet but the idea was really simple.
- Under OF_BOARD (which can arguably be renamed to OF_PREVIOUS_STAGE
or something like that)  if CONFIG_BLOB is enabled we scan for a
bloblist
- If CONFIG_BLOB is enabled but no bloblist is provided we fail the boot
- If CONFIG_BLOB is not enabled we do what we did up to now, maybe
with a message that this is going to be obsoleted once enough boards
migrate to a bloblist

IOW if support for a bloblist is enabled we expect to find one from
the previous bootloader. I've lost count of how many times I repeated
this, but here it goes again
The device tree can come
- From u-boot
- From a previous stage loader *somehow* (eg. passed on a bloblist,
passed on a register, read from an EEPROM etc)

We should keep that distinction and create subcategories for the
'comes from a previous stage loader', rather than adding arbitrary
config options which only confuse people

Regards
/Ilias
>
> If in the future all boards a reusing bloblist for this feature, then
> sure, we can drop it. But we have things like rpi which do their own
> thing.
>
> > If it fulfills the above conditions, we can take the FDT from bloblist, otherwise from the predefined memory address.
> > This is fully backward compatible without adding a new build option.
>
> Again, we need to obtain the FDT from the bloblist if and only if the
> board requires it. It creates a lot of confusion to have it as an
> optional feature, when we know which way it should be.
>
> Ultimately OF_BOARD should go away. We just need to push bloblist to
> other projects and closed-source firmware as the correct way to pass a
> DT.
>
> Regards,
> Simon
> [.]

[0] https://lore.kernel.org/u-boot/CAPnjgZ0SqVyj_drLEQrP21zPYCco3HOP-rYD+nKJMa0BVYpMDA@mail.gmail.com/


More information about the U-Boot mailing list