Hi Tom, On Thu, Dec 28, 2023 at 1:48 PM Tom Rini <tr...@konsulko.com> wrote: > > On Thu, Dec 28, 2023 at 01:37:39PM +0000, Simon Glass wrote: > > Hi Tom, > > > > > > On Wed, Dec 27, 2023 at 8:06 PM Tom Rini <tr...@konsulko.com> wrote: > > > > > > On Wed, Dec 27, 2023 at 05:48:42PM +0000, Simon Glass wrote: > > > > Hi Tom, > > > > > > > > On Tue, Dec 26, 2023 at 12:07 PM Tom Rini <tr...@konsulko.com> wrote: > > > > > > > > > > On Tue, Dec 26, 2023 at 09:46:25AM +0000, Simon Glass wrote: > > > > > > > > > > > Standard passage provides for a bloblist to be passed from one > > > > > > firmware > > > > > > phase to the next. That can be used to pass the devicetree along as > > > > > > well. > > > > > > Add an option to support this. > > > > > > > > > > > > Tests for this will be added as part of the Universal Payload work. > > > > > > > > > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > > > > > --- > > > > > > The discussion on this was not resolved and is now important due to > > > > > > the > > > > > > bloblist series from Raymond. So I am sending it again since I > > > > > > believe > > > > > > this is a better starting point than building on OF_BOARD > > > > > > > > > > I really don't like adding another option for "DT is given to us". Why > > > > > isn't adding another enum to fdt_source_t sufficient > > > > > > > > That is added by this patch, but... > > > > > > > > >, and if we have > > > > > bloblist enabled, that will look for and use if found? > > > > > > > > ...this is the question. I would like to be able to enable bloblist > > > > without *requiring* the DT to come from there, hence the separate > > > > Kconfig option. > > > > > > > > > Maybe some other > > > > > code needs to be restructured and cleaned up too? > > > > > > > > Possibly, but I really am not keen on this board-specific solution. I > > > > believe Ilias & I agreed that OF_BOARD should fade away, so I don't > > > > like adding another thing onto it. > > > > > > I think you're missing something then. It should not be board specific > > > to just find the dtb via bloblist, without a new CONFIG. > > > > Yes, that is what I am looking for. > > > > > Whatever is > > > stopping that is what needs to be refactored and then you can just > > > extend fdt_source_t without a new CONFIG option. > > > > OK, but I need a way to turn it off, at least for development. > > > > [merging in the other thread:] > > > > On Wed, Dec 27, 2023 at 8:11 PM Tom Rini <tr...@konsulko.com> wrote: > > > > > > On Wed, Dec 27, 2023 at 05:48:44PM +0000, Simon Glass wrote: > > > > Hi Ilias, > > > > > > > > On Wed, Dec 27, 2023 at 6:44 AM Ilias Apalodimas > > > > <ilias.apalodi...@linaro.org> wrote: > > > > > > > > > > Hi Tom, > > > > > > > > > > On Tue, 26 Dec 2023 at 14:07, Tom Rini <tr...@konsulko.com> wrote: > > > > > > > > > > > > On Tue, Dec 26, 2023 at 09:46:25AM +0000, Simon Glass wrote: > > > > > > > > > > > > > Standard passage provides for a bloblist to be passed from one > > > > > > > firmware > > > > > > > phase to the next. That can be used to pass the devicetree along > > > > > > > as well. > > > > > > > Add an option to support this. > > > > > > > > > > > > > > Tests for this will be added as part of the Universal Payload > > > > > > > work. > > > > > > > > > > > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > > > > > > --- > > > > > > > The discussion on this was not resolved and is now important due > > > > > > > to the > > > > > > > bloblist series from Raymond. So I am sending it again since I > > > > > > > believe > > > > > > > this is a better starting point than building on OF_BOARD > > > > > > > > > > > > I really don't like adding another option for "DT is given to us". > > > > > > Why > > > > > > isn't adding another enum to fdt_source_t sufficient, and if we have > > > > > > bloblist enabled, that will look for and use if found? Maybe some > > > > > > other > > > > > > code needs to be restructured and cleaned up too? > > > > > > > > > > Same here. On top of that the bloblist has a few items in there, e.g a > > > > > TPM eventlog. What are we going to do? Add a Kconfig for each item? > > > > > > > > No, but that is just a straw man. The DT is special and U-Boot reports > > > > where it comes from. > > > > > > > > > > > > > > This has been going back and forth for a while. I've lost count of how > > > > > many times I repeated the same proposal, but here it goes again. We > > > > > have OF_BOARD and BLOBLIST options. The bloblist and its properties > > > > > are scannable at runtime. Can't we use the combination of these 2 can > > > > > be used to imply we expect things from a bloblist. If we want to be > > > > > stricter in the future and explicitly expect the DT from a bloblist, > > > > > we could add a Kconfig option failing the boot if that's missing. > > > > > > > > I would like to have that Kconfig option now, not later. In my mind, > > > > the boot must be deterministic, so that if OF_BLOBLIST is enabled, the > > > > DT must come from there, or it is an error. > > > > > > Determinism doesn't require a CONFIG option, it just requires an if/else > > > tree where we say what the "correct" priority list should be and then > > > set a flag so that we can tell the user where we found it too. This also > > > means that we can get whatever is going to use this mechanism to > > > migrate over, and have less of a chicken-and-egg type of problem. > > > > OK I think I understand what is going on here. We need a way to enable > > OF_BLOBLIST while still allowing the prior stage to NOT provide a > > bloblist, at least for a transition period (= forever, I suspect, but > > that's another discussion). > > > > How about if OF_BLOBLIST enables the option, but we allow a fallback > > to OF_BOARD if the DT is not there? > > Oh, OK, so your use case is development. Why don't we just make > OF_EMBEDDED be the first clause in the if/else (and yes, if > (IS_ENABLED(CONFIG_OF_EMBEDDED) :)) and move on still not needing a knob > for "bloblist has it"?
Because OF_EMBED doesn't work with binman, and takes a lot of different code paths, etc. It is somewhat useful when loading U-Boot using a debugger, but that is about it. I sent a v5 that I hope does what is needed. Regards, Simon